minfraud 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f182ec6ff9542ff7b8ece4510f041f4781ea6f6866dac5abef6de9f3444f615
4
- data.tar.gz: c3ab3c050bd54c5b48afef905ddc1233f27137d32bf33679a0853df568b5bdde
3
+ metadata.gz: b2c683916a690e43c095a9fcb4b08118b5516919245fc5bf47d8b7b1de51f2be
4
+ data.tar.gz: 65135f9eb185edacfdc737d195cd283b77e6a548b49854f4b4964f8d7d061d39
5
5
  SHA512:
6
- metadata.gz: 134ffce329ee439af6850e9ab57e7f66ca68c25578fa4d204973ecc7528ae3e7fd1d7f5548422baad3b421ca06459c6b731dcc10edd958642479015abd1df412
7
- data.tar.gz: 55f507d7d54bbf7f4798027d8ea53a27464f0af26a8b53b80fcf5d56c15fb308bb921eca23f17ac6fffffddc94427ca946fee5ef6c75589d966c536815cf9448
6
+ metadata.gz: b5642ec35609ebe7463b8a252593247d2676df99fafcf374ddca1c8463160ede4e4dc2c7b3adbf398ec54daf23640e9625443a60723e4afe01098caede9ee66a
7
+ data.tar.gz: 7276700318812cd0bd9b306237018cba29107a5723b8c4ddf6f76d0ed2394deea191655f149069d1cf0c11b5864725fc834805b42c39afc1daf2c616ee0a30ba
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.5
2
+ TargetRubyVersion: 2.7
3
3
  NewCops: enable
4
4
 
5
5
  # Metrics.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## v2.5.0 (2024-04-16)
4
+
5
+ * Equivalent domain names are now normalized when `hash_address` is used.
6
+ For example, `googlemail.com` will become `gmail.com`.
7
+ * Periods are now removed from `gmail.com` email address local parts when
8
+ `hash_address` is used. For example, `f.o.o@gmail.com` will become
9
+ `foo@gmail.com`.
10
+ * Fastmail alias subdomain email addresses are now normalized when
11
+ `hash_address` is used. For example, `alias@user.fastmail.com` will
12
+ become `user@fastmail.com`.
13
+ * Additional `yahoo.com` email addresses now have aliases removed from
14
+ their local part when `hash_address` is used. For example,
15
+ `foo-bar@yahoo.com` will become `foo@yahoo.com` for additional
16
+ `yahoo.com` domains.
17
+ * Duplicate `.com`s are now removed from email domain names when
18
+ `hash_address` is used. For example, `example.com.com` will become
19
+ `example.com`.
20
+ * Certain TLD typos are now normalized when `hash_address` is used. For
21
+ example, `example.comcom` will become `example.com`.
22
+ * Additional `gmail.com` domain names with leading digits are now
23
+ normalized when `hash_address` is used. For example, `100gmail.com` will
24
+ become `gmail.com`.
25
+ * Additional `gmail.com` typos are now normalized when `hash_address` is
26
+ used. For example, `gmali.com` will become `gmail.com`.
27
+ * When `hash_address` is used, all trailing periods are now removed from an
28
+ email address domain. Previously only a single period was removed.
29
+ * When `hash_address` is used, the local part of an email address is now
30
+ normalized to NFC.
31
+
32
+ ## v2.4.0 (2024-01-12)
33
+
34
+ * Ruby 2.7+ is now required. If you're using Ruby 2.5 or 2.6, please use
35
+ version 2.3.0 of this gem.
36
+ * Added the processors `:pxp_financial` and `:trustpay` to
37
+ `Minfraud::Components::Payment`.
38
+
3
39
  ## v2.3.0 (2023-12-04)
4
40
 
5
41
  * Added the processor `:shopify_payments` to `Minfraud::Components::Payment`.
data/LICENSE.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  The MIT License (MIT)
2
2
 
3
3
  Copyright (c) 2016-2020 kushnir.yb
4
- Copyright (c) 2020-2023 MaxMind, Inc.
4
+ Copyright (c) 2020-2024 MaxMind, Inc.
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
7
  of this software and associated documentation files (the "Software"), to deal
data/README.dev.md CHANGED
@@ -1,4 +1,28 @@
1
+ # Prereqs
2
+
3
+ * You must have a local Ruby environment that can run the tests
4
+ via `rake`.
5
+ * You must have the [GitHub CLI tool (gh)](https://cli.github.com/)
6
+ installed, in your path, and logged into an account that can
7
+ make GitHub releases on the repo.
8
+ * Your environment also must have `bash`, `git`, `perl`, and `sed`
9
+ available.
10
+
1
11
  # How to release
2
12
 
3
- See
4
- [here](https://github.com/maxmind/MaxMind-DB-Reader-ruby/blob/main/README.dev.md).
13
+ * Review open issues and PRs to see if anything needs to be addressed
14
+ before release.
15
+ * Create a branch e.g. `horgh/release` and switch to it.
16
+ * `main` is protected.
17
+ * Set the release version and release date in `CHANGELOG.md`. Be sure
18
+ the version follows [Semantic Versioning](https://semver.org/).
19
+ * Commit these changes.
20
+ * Run `dev-bin/release.sh`.
21
+ * Verify the release on the GitHub Releases page.
22
+ * If everything goes well, the authorized releasers will receive an email
23
+ to review the pending deployment. If you are an authorized releaser,
24
+ you will need to approve the release deployment run. If you are not,
25
+ you will have to wait for an authorized releaser to do so.
26
+ * Double check it looks okay at https://rubygems.org/gems/minfraud and
27
+ https://www.rubydoc.info/gems/minfraud.
28
+ * Make a PR and get it merged.
data/README.md CHANGED
@@ -275,7 +275,7 @@ to the client API, please see
275
275
 
276
276
  ## Requirements
277
277
 
278
- This gem works with Ruby 2.5 and above.
278
+ This gem works with Ruby 2.7 and above.
279
279
 
280
280
  ## Contributing
281
281
 
@@ -293,7 +293,7 @@ This API uses [Semantic Versioning](https://semver.org/).
293
293
 
294
294
  Copyright (c) 2016-2020 kushnir.yb.
295
295
 
296
- Copyright (c) 2020-2023 MaxMind, Inc.
296
+ Copyright (c) 2020-2024 MaxMind, Inc.
297
297
 
298
298
  The gem is available as open source under the terms of the [MIT
299
299
  License](https://opensource.org/licenses/MIT).
@@ -88,43 +88,316 @@ module Minfraud
88
88
  local_part, domain = address.split('@', 2)
89
89
  return nil if !local_part || !domain
90
90
 
91
+ local_part = local_part.unicode_normalize(:nfc)
92
+
91
93
  domain = clean_domain(domain)
92
94
 
93
- if domain == 'yahoo.com'
95
+ if YAHOO_DOMAINS.key?(domain)
94
96
  local_part.sub!(/\A([^-]+)-.*\z/, '\1')
95
97
  else
96
98
  local_part.sub!(/\A([^+]+)\+.*\z/, '\1')
97
99
  end
98
100
 
101
+ if domain == 'gmail.com'
102
+ local_part.gsub!('.', '')
103
+ end
104
+
105
+ domain_parts = domain.split('.')
106
+ if domain_parts.length > 2
107
+ possible_domain = domain_parts[1..].join('.')
108
+ if FASTMAIL_DOMAINS.key?(possible_domain)
109
+ domain = possible_domain
110
+ if local_part != ''
111
+ local_part = domain_parts[0]
112
+ end
113
+ end
114
+ end
115
+
99
116
  "#{local_part}@#{domain}"
100
117
  end
101
118
 
102
119
  TYPO_DOMAINS = {
103
120
  # gmail.com
104
- '35gmai.com' => 'gmail.com',
105
- '636gmail.com' => 'gmail.com',
121
+ 'gmai.com' => 'gmail.com',
106
122
  'gamil.com' => 'gmail.com',
107
- 'gmail.comu' => 'gmail.com',
123
+ 'gmali.com' => 'gmail.com',
108
124
  'gmial.com' => 'gmail.com',
109
125
  'gmil.com' => 'gmail.com',
126
+ 'gmaill.com' => 'gmail.com',
127
+ 'gmailm.com' => 'gmail.com',
128
+ 'gmailo.com' => 'gmail.com',
129
+ 'gmailyhoo.com' => 'gmail.com',
110
130
  'yahoogmail.com' => 'gmail.com',
111
131
  # outlook.com
112
132
  'putlook.com' => 'outlook.com',
113
133
  }.freeze
114
134
  private_constant :TYPO_DOMAINS
115
135
 
136
+ TYPO_TLDS = {
137
+ 'comm' => 'com',
138
+ 'commm' => 'com',
139
+ 'commmm' => 'com',
140
+ 'comn' => 'com',
141
+
142
+ 'cbm' => 'com',
143
+ 'ccm' => 'com',
144
+ 'cdm' => 'com',
145
+ 'cem' => 'com',
146
+ 'cfm' => 'com',
147
+ 'cgm' => 'com',
148
+ 'chm' => 'com',
149
+ 'cim' => 'com',
150
+ 'cjm' => 'com',
151
+ 'ckm' => 'com',
152
+ 'clm' => 'com',
153
+ 'cmm' => 'com',
154
+ 'cnm' => 'com',
155
+ 'cpm' => 'com',
156
+ 'cqm' => 'com',
157
+ 'crm' => 'com',
158
+ 'csm' => 'com',
159
+ 'ctm' => 'com',
160
+ 'cum' => 'com',
161
+ 'cvm' => 'com',
162
+ 'cwm' => 'com',
163
+ 'cxm' => 'com',
164
+ 'cym' => 'com',
165
+ 'czm' => 'com',
166
+
167
+ 'col' => 'com',
168
+ 'con' => 'com',
169
+
170
+ 'dom' => 'com',
171
+ 'don' => 'com',
172
+ 'som' => 'com',
173
+ 'son' => 'com',
174
+ 'vom' => 'com',
175
+ 'von' => 'com',
176
+ 'xom' => 'com',
177
+ 'xon' => 'com',
178
+
179
+ 'clam' => 'com',
180
+ 'colm' => 'com',
181
+ 'comcom' => 'com',
182
+ }.freeze
183
+ private_constant :TYPO_TLDS
184
+
185
+ EQUIVALENT_DOMAINS = {
186
+ 'googlemail.com' => 'gmail.com',
187
+ 'pm.me' => 'protonmail.com',
188
+ 'proton.me' => 'protonmail.com',
189
+ 'yandex.by' => 'yandex.ru',
190
+ 'yandex.com' => 'yandex.ru',
191
+ 'yandex.kz' => 'yandex.ru',
192
+ 'yandex.ua' => 'yandex.ru',
193
+ 'ya.ru' => 'yandex.ru',
194
+ }.freeze
195
+ private_constant :EQUIVALENT_DOMAINS
196
+
197
+ FASTMAIL_DOMAINS = {
198
+ '123mail.org' => true,
199
+ '150mail.com' => true,
200
+ '150ml.com' => true,
201
+ '16mail.com' => true,
202
+ '2-mail.com' => true,
203
+ '4email.net' => true,
204
+ '50mail.com' => true,
205
+ 'airpost.net' => true,
206
+ 'allmail.net' => true,
207
+ 'bestmail.us' => true,
208
+ 'cluemail.com' => true,
209
+ 'elitemail.org' => true,
210
+ 'emailcorner.net' => true,
211
+ 'emailengine.net' => true,
212
+ 'emailengine.org' => true,
213
+ 'emailgroups.net' => true,
214
+ 'emailplus.org' => true,
215
+ 'emailuser.net' => true,
216
+ 'eml.cc' => true,
217
+ 'f-m.fm' => true,
218
+ 'fast-email.com' => true,
219
+ 'fast-mail.org' => true,
220
+ 'fastem.com' => true,
221
+ 'fastemail.us' => true,
222
+ 'fastemailer.com' => true,
223
+ 'fastest.cc' => true,
224
+ 'fastimap.com' => true,
225
+ 'fastmail.cn' => true,
226
+ 'fastmail.co.uk' => true,
227
+ 'fastmail.com' => true,
228
+ 'fastmail.com.au' => true,
229
+ 'fastmail.de' => true,
230
+ 'fastmail.es' => true,
231
+ 'fastmail.fm' => true,
232
+ 'fastmail.fr' => true,
233
+ 'fastmail.im' => true,
234
+ 'fastmail.in' => true,
235
+ 'fastmail.jp' => true,
236
+ 'fastmail.mx' => true,
237
+ 'fastmail.net' => true,
238
+ 'fastmail.nl' => true,
239
+ 'fastmail.org' => true,
240
+ 'fastmail.se' => true,
241
+ 'fastmail.to' => true,
242
+ 'fastmail.tw' => true,
243
+ 'fastmail.uk' => true,
244
+ 'fastmail.us' => true,
245
+ 'fastmailbox.net' => true,
246
+ 'fastmessaging.com' => true,
247
+ 'fea.st' => true,
248
+ 'fmail.co.uk' => true,
249
+ 'fmailbox.com' => true,
250
+ 'fmgirl.com' => true,
251
+ 'fmguy.com' => true,
252
+ 'ftml.net' => true,
253
+ 'h-mail.us' => true,
254
+ 'hailmail.net' => true,
255
+ 'imap-mail.com' => true,
256
+ 'imap.cc' => true,
257
+ 'imapmail.org' => true,
258
+ 'inoutbox.com' => true,
259
+ 'internet-e-mail.com' => true,
260
+ 'internet-mail.org' => true,
261
+ 'internetemails.net' => true,
262
+ 'internetmailing.net' => true,
263
+ 'jetemail.net' => true,
264
+ 'justemail.net' => true,
265
+ 'letterboxes.org' => true,
266
+ 'mail-central.com' => true,
267
+ 'mail-page.com' => true,
268
+ 'mailandftp.com' => true,
269
+ 'mailas.com' => true,
270
+ 'mailbolt.com' => true,
271
+ 'mailc.net' => true,
272
+ 'mailcan.com' => true,
273
+ 'mailforce.net' => true,
274
+ 'mailftp.com' => true,
275
+ 'mailhaven.com' => true,
276
+ 'mailingaddress.org' => true,
277
+ 'mailite.com' => true,
278
+ 'mailmight.com' => true,
279
+ 'mailnew.com' => true,
280
+ 'mailsent.net' => true,
281
+ 'mailservice.ms' => true,
282
+ 'mailup.net' => true,
283
+ 'mailworks.org' => true,
284
+ 'ml1.net' => true,
285
+ 'mm.st' => true,
286
+ 'myfastmail.com' => true,
287
+ 'mymacmail.com' => true,
288
+ 'nospammail.net' => true,
289
+ 'ownmail.net' => true,
290
+ 'petml.com' => true,
291
+ 'postinbox.com' => true,
292
+ 'postpro.net' => true,
293
+ 'proinbox.com' => true,
294
+ 'promessage.com' => true,
295
+ 'realemail.net' => true,
296
+ 'reallyfast.biz' => true,
297
+ 'reallyfast.info' => true,
298
+ 'rushpost.com' => true,
299
+ 'sent.as' => true,
300
+ 'sent.at' => true,
301
+ 'sent.com' => true,
302
+ 'speedpost.net' => true,
303
+ 'speedymail.org' => true,
304
+ 'ssl-mail.com' => true,
305
+ 'swift-mail.com' => true,
306
+ 'the-fastest.net' => true,
307
+ 'the-quickest.com' => true,
308
+ 'theinternetemail.com' => true,
309
+ 'veryfast.biz' => true,
310
+ 'veryspeedy.net' => true,
311
+ 'warpmail.net' => true,
312
+ 'xsmail.com' => true,
313
+ 'yepmail.net' => true,
314
+ 'your-mail.com' => true,
315
+ }.freeze
316
+ private_constant :FASTMAIL_DOMAINS
317
+
318
+ YAHOO_DOMAINS = {
319
+ 'y7mail.com' => true,
320
+ 'yahoo.at' => true,
321
+ 'yahoo.be' => true,
322
+ 'yahoo.bg' => true,
323
+ 'yahoo.ca' => true,
324
+ 'yahoo.cl' => true,
325
+ 'yahoo.co.id' => true,
326
+ 'yahoo.co.il' => true,
327
+ 'yahoo.co.in' => true,
328
+ 'yahoo.co.kr' => true,
329
+ 'yahoo.co.nz' => true,
330
+ 'yahoo.co.th' => true,
331
+ 'yahoo.co.uk' => true,
332
+ 'yahoo.co.za' => true,
333
+ 'yahoo.com' => true,
334
+ 'yahoo.com.ar' => true,
335
+ 'yahoo.com.au' => true,
336
+ 'yahoo.com.br' => true,
337
+ 'yahoo.com.co' => true,
338
+ 'yahoo.com.hk' => true,
339
+ 'yahoo.com.hr' => true,
340
+ 'yahoo.com.mx' => true,
341
+ 'yahoo.com.my' => true,
342
+ 'yahoo.com.pe' => true,
343
+ 'yahoo.com.ph' => true,
344
+ 'yahoo.com.sg' => true,
345
+ 'yahoo.com.tr' => true,
346
+ 'yahoo.com.tw' => true,
347
+ 'yahoo.com.ua' => true,
348
+ 'yahoo.com.ve' => true,
349
+ 'yahoo.com.vn' => true,
350
+ 'yahoo.cz' => true,
351
+ 'yahoo.de' => true,
352
+ 'yahoo.dk' => true,
353
+ 'yahoo.ee' => true,
354
+ 'yahoo.es' => true,
355
+ 'yahoo.fi' => true,
356
+ 'yahoo.fr' => true,
357
+ 'yahoo.gr' => true,
358
+ 'yahoo.hu' => true,
359
+ 'yahoo.ie' => true,
360
+ 'yahoo.in' => true,
361
+ 'yahoo.it' => true,
362
+ 'yahoo.lt' => true,
363
+ 'yahoo.lv' => true,
364
+ 'yahoo.nl' => true,
365
+ 'yahoo.no' => true,
366
+ 'yahoo.pl' => true,
367
+ 'yahoo.pt' => true,
368
+ 'yahoo.ro' => true,
369
+ 'yahoo.se' => true,
370
+ 'yahoo.sk' => true,
371
+ 'ymail.com' => true,
372
+ }.freeze
373
+ private_constant :YAHOO_DOMAINS
374
+
116
375
  def clean_domain(domain)
117
376
  domain = domain.strip
118
377
 
119
- # We could use delete_suffix!, but that is in Ruby 2.5+ only.
120
- domain.sub!(/\.\z/, '')
378
+ domain.sub!(/\.+\z/, '')
121
379
 
122
380
  domain = SimpleIDN.to_ascii(domain)
123
381
 
382
+ domain.sub!(/(?:\.com){2,}$/, '.com')
383
+ domain.sub!(/^\d+(?:gmail?\.com)$/, 'gmail.com')
384
+
385
+ idx = domain.rindex('.')
386
+ if !idx.nil?
387
+ tld = domain[idx + 1..]
388
+ if TYPO_TLDS.key?(tld)
389
+ domain = "#{domain[0, idx]}.#{TYPO_TLDS[tld]}"
390
+ end
391
+ end
392
+
124
393
  if TYPO_DOMAINS.key?(domain)
125
394
  domain = TYPO_DOMAINS[domain]
126
395
  end
127
396
 
397
+ if EQUIVALENT_DOMAINS.key?(domain)
398
+ domain = EQUIVALENT_DOMAINS[domain]
399
+ end
400
+
128
401
  domain
129
402
  end
130
403
  end
@@ -134,6 +134,7 @@ module Minfraud
134
134
  posconnect
135
135
  princeton_payment_solutions
136
136
  psigate
137
+ pxp_financial
137
138
  qiwi
138
139
  quickpay
139
140
  raberil
@@ -158,6 +159,7 @@ module Minfraud
158
159
  towah
159
160
  transact_pro
160
161
  trustly
162
+ trustpay
161
163
  tsys
162
164
  usa_epay
163
165
  vantiv
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Minfraud
4
4
  # The Gem version.
5
- VERSION = '2.3.0'
5
+ VERSION = '2.5.0'
6
6
  end
data/minfraud.gemspec CHANGED
@@ -15,9 +15,9 @@ Gem::Specification.new do |spec|
15
15
  spec.homepage = 'https://github.com/maxmind/minfraud-api-ruby'
16
16
  spec.license = 'MIT'
17
17
 
18
- spec.required_ruby_version = '>= 2.5.0'
18
+ spec.required_ruby_version = '>= 2.7.0'
19
19
 
20
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^.gitignore$|^(?:\.github|dev-bin|spec)/}) }
21
21
  spec.bindir = 'exe'
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minfraud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kushnir.yb
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-12-04 00:00:00.000000000 Z
12
+ date: 2024-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: connection_pool
@@ -156,10 +156,6 @@ executables: []
156
156
  extensions: []
157
157
  extra_rdoc_files: []
158
158
  files:
159
- - ".github/dependabot.yml"
160
- - ".github/workflows/rubocop.yml"
161
- - ".github/workflows/test.yml"
162
- - ".gitignore"
163
159
  - ".rspec"
164
160
  - ".rubocop.yml"
165
161
  - CHANGELOG.md
@@ -230,14 +226,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
230
226
  requirements:
231
227
  - - ">="
232
228
  - !ruby/object:Gem::Version
233
- version: 2.5.0
229
+ version: 2.7.0
234
230
  required_rubygems_version: !ruby/object:Gem::Requirement
235
231
  requirements:
236
232
  - - ">="
237
233
  - !ruby/object:Gem::Version
238
234
  version: '0'
239
235
  requirements: []
240
- rubygems_version: 3.4.18
236
+ rubygems_version: 3.5.3
241
237
  signing_key:
242
238
  specification_version: 4
243
239
  summary: Ruby API for the minFraud Score, Insights, Factors, and Report Transactions
@@ -1,11 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- open-pull-requests-limit: 10
8
- - package-ecosystem: "github-actions"
9
- directory: "/"
10
- schedule:
11
- interval: daily
@@ -1,18 +0,0 @@
1
- name: Run rubocop
2
-
3
- on:
4
- push:
5
- pull_request:
6
- schedule:
7
- - cron: '4 0 * * SUN'
8
-
9
- jobs:
10
- rubocop:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
- - uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.2
17
- - run: bundle install
18
- - run: bundle exec rake -t rubocop
@@ -1,37 +0,0 @@
1
- name: Run tests
2
-
3
- on:
4
- push:
5
- pull_request:
6
- schedule:
7
- - cron: '4 1 * * SUN'
8
-
9
- jobs:
10
- test:
11
- runs-on: ${{ matrix.os }}
12
- strategy:
13
- fail-fast: false
14
- matrix:
15
- os: [ubuntu-latest, windows-latest, macos-latest]
16
- version:
17
- [
18
- 2.5,
19
- 2.6,
20
- 2.7,
21
- '3.0',
22
- 3.1,
23
- 3.2,
24
- jruby,
25
- ]
26
- exclude:
27
- - os: windows-latest
28
- version: jruby
29
- steps:
30
- - uses: actions/checkout@v4
31
- with:
32
- submodules: true
33
- - uses: ruby/setup-ruby@v1
34
- with:
35
- ruby-version: ${{ matrix.version }}
36
- - run: bundle install
37
- - run: bundle exec rake -t spec
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /coverage
2
- pkg
3
- .project
4
- Gemfile.lock
5
- .rvmrc
6
- *.rbc
7
- .yardoc
8
- *~
9
- .DS_Store