minfraud 2.3.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
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