credit_card_validations 6.0.0 → 7.0.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 +4 -4
- data/.github/workflows/build.yml +11 -6
- data/Changelog.md +15 -0
- data/credit_card_validations.gemspec +4 -4
- data/lib/credit_card_validations/detector.rb +9 -3
- data/lib/credit_card_validations/version.rb +1 -1
- data/spec/credit_card_validations_spec.rb +22 -0
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8f7d7a9d4f3ab464575d41f7fb4c6892340a2540752e1b3237b532ff2437eed
|
4
|
+
data.tar.gz: 82edcf7c91e4b2d4e3774068fd7dd1ebdb32bf61711328365c1fb17b2e769452
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b559bfc0762eb66e6fcd096924bdfad21babcfeb6e9e73f31aebe224f85e80a381c9c01f4568bd473fbdcbc412f0607e719c52a541e81e6e88a7aaadc2d90f1
|
7
|
+
data.tar.gz: f32c9d410d0a06a85d12d837b9c696801de61bbd0fffa1da62563c189d6ec3d51e7068cfbb73470b8254294dd2a5385189161633021fd3e5a7a3783bdea4f173
|
data/.github/workflows/build.yml
CHANGED
@@ -6,16 +6,21 @@ on:
|
|
6
6
|
- master
|
7
7
|
jobs:
|
8
8
|
test:
|
9
|
-
name: Tests with Ruby ${{ matrix.ruby }} Rails ${{ matrix.rails }}
|
9
|
+
name: Tests with Ruby ${{ matrix.ruby-version }} Rails ${{ matrix.rails }}
|
10
10
|
runs-on: ubuntu-latest
|
11
11
|
strategy:
|
12
12
|
matrix:
|
13
13
|
ruby-version:
|
14
|
-
-
|
15
|
-
- 3.
|
14
|
+
- 3.1
|
15
|
+
- 3.2
|
16
|
+
- 3.3
|
16
17
|
rails:
|
17
|
-
- '
|
18
|
-
- '7.
|
18
|
+
- '7.1.0'
|
19
|
+
- '7.2.0'
|
20
|
+
- '8.0.0'
|
21
|
+
exclude:
|
22
|
+
- ruby-version: 3.1
|
23
|
+
rails: '8.0.0'
|
19
24
|
env:
|
20
25
|
RAILS_VERSION: ${{ matrix.rails }}
|
21
26
|
steps:
|
@@ -26,4 +31,4 @@ jobs:
|
|
26
31
|
bundler-cache: true
|
27
32
|
- name: Run tests
|
28
33
|
run: |
|
29
|
-
bundle exec rake
|
34
|
+
bundle exec rake
|
data/Changelog.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
# 7.0.0
|
2
|
+
* allow rails 8
|
3
|
+
* drop rails 6.1 and rails 7.0
|
4
|
+
* drop support of eol ruby versions 2.7, 3.0
|
5
|
+
|
6
|
+
# 6.3.0
|
7
|
+
* rails 7.2 support
|
8
|
+
|
9
|
+
# 6.2.0
|
10
|
+
* support ruby 3.3
|
11
|
+
* more accurate brand matching using matched prefix length
|
12
|
+
|
13
|
+
# 6.1.0
|
14
|
+
* support rails 7.1
|
15
|
+
|
1
16
|
# 6.0.0
|
2
17
|
* changes to discover branch
|
3
18
|
* allows to configure usage of own yaml brands file
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.summary = "gem should be used for credit card numbers validation, card brands detections, luhn checks"
|
13
13
|
gem.homepage = "http://didww.github.io/credit_card_validations/"
|
14
14
|
gem.license = "MIT"
|
15
|
-
|
15
|
+
|
16
16
|
gem.metadata = {
|
17
17
|
'bug_tracker_uri' => 'https://github.com/didww/credit_card_validations/issues',
|
18
18
|
'changelog_uri' => 'https://github.com/didww/credit_card_validations/blob/master/Changelog.md',
|
@@ -25,12 +25,12 @@ Gem::Specification.new do |gem|
|
|
25
25
|
gem.require_paths = ["lib"]
|
26
26
|
|
27
27
|
|
28
|
-
gem.add_dependency "activemodel", ">= 5.2", "<
|
29
|
-
gem.add_dependency "activesupport", ">= 5.2", "<
|
28
|
+
gem.add_dependency "activemodel", ">= 5.2", "< 8.1"
|
29
|
+
gem.add_dependency "activesupport", ">= 5.2", "< 8.1"
|
30
30
|
|
31
31
|
|
32
32
|
gem.add_development_dependency "minitest", '~> 5.14.3'
|
33
33
|
gem.add_development_dependency "mocha", '1.1.0'
|
34
|
-
gem.add_development_dependency 'rake'
|
34
|
+
gem.add_development_dependency 'rake'
|
35
35
|
gem.add_development_dependency 'byebug'
|
36
36
|
end
|
@@ -28,8 +28,14 @@ module CreditCardValidations
|
|
28
28
|
def valid_number?(*keys)
|
29
29
|
selected_brands = keys.blank? ? self.brands : resolve_keys(*keys)
|
30
30
|
if selected_brands.any?
|
31
|
+
matched_brands = []
|
31
32
|
selected_brands.each do |key, brand|
|
32
|
-
|
33
|
+
match_data = matches_brand?(brand)
|
34
|
+
matched_brands << {brand: key, matched_prefix_length: match_data.to_s.length} if match_data
|
35
|
+
end
|
36
|
+
|
37
|
+
if matched_brands.present?
|
38
|
+
return matched_brands.sort{|a, b| a[:matched_prefix_length] <=> b[:matched_prefix_length]}.last[:brand]
|
33
39
|
end
|
34
40
|
end
|
35
41
|
nil
|
@@ -64,8 +70,8 @@ module CreditCardValidations
|
|
64
70
|
rules.each do |rule|
|
65
71
|
if (options[:skip_luhn] || valid_luhn?) &&
|
66
72
|
rule[:length].include?(number.length) &&
|
67
|
-
number.match(rule[:regexp])
|
68
|
-
return
|
73
|
+
match_data = number.match(rule[:regexp])
|
74
|
+
return match_data
|
69
75
|
end
|
70
76
|
end
|
71
77
|
false
|
@@ -170,6 +170,28 @@ describe CreditCardValidations do
|
|
170
170
|
end
|
171
171
|
end
|
172
172
|
end
|
173
|
+
|
174
|
+
describe 'Add kortimilli rule' do
|
175
|
+
let(:kortimilli_number) { '505827028341713' }
|
176
|
+
|
177
|
+
it 'before invoke add_brand credit card behaves like maestro' do
|
178
|
+
expect(detector(kortimilli_number).valid?(:maestro)).must_equal true
|
179
|
+
expect(detector(kortimilli_number).maestro?).must_equal true
|
180
|
+
expect(detector(kortimilli_number).brand).must_equal :maestro
|
181
|
+
end
|
182
|
+
|
183
|
+
describe 'after adding wider prefix for kortimilli' do
|
184
|
+
before do
|
185
|
+
CreditCardValidations::Detector.add_brand(:kortimilli, length: 15, prefixes: '505827028')
|
186
|
+
end
|
187
|
+
|
188
|
+
it 'should validate number as kortimilli' do
|
189
|
+
expect(detector(kortimilli_number).valid?(:kortimilli)).must_equal true
|
190
|
+
expect(detector(kortimilli_number).kortimilli?).must_equal true
|
191
|
+
expect(detector(kortimilli_number).brand).must_equal :kortimilli
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
173
195
|
end
|
174
196
|
|
175
197
|
describe 'plugins' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: credit_card_validations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '5.2'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
22
|
+
version: '8.1'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '5.2'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
32
|
+
version: '8.1'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: activesupport
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '5.2'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
42
|
+
version: '8.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '5.2'
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: '
|
52
|
+
version: '8.1'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: minitest
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,16 +82,16 @@ dependencies:
|
|
82
82
|
name: rake
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- - "
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: '
|
87
|
+
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
|
-
- - "
|
92
|
+
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
94
|
+
version: '0'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: byebug
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
167
|
- !ruby/object:Gem::Version
|
168
168
|
version: '0'
|
169
169
|
requirements: []
|
170
|
-
rubygems_version: 3.
|
170
|
+
rubygems_version: 3.4.22
|
171
171
|
signing_key:
|
172
172
|
specification_version: 4
|
173
173
|
summary: gem should be used for credit card numbers validation, card brands detections,
|