credit_card_support 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,48 +1,52 @@
1
1
  I18n.load_path << File.dirname(__FILE__) + '/../locale/en.yml'
2
2
 
3
- class CreditCardNumberValidator < ActiveModel::EachValidator
3
+ module ActiveModel
4
+ module Validations
5
+ class CreditCardNumberValidator < ActiveModel::EachValidator
6
+
7
+ def validate_each(record, attribute, value)
8
+ @record = record
9
+ @attribute = attribute
10
+ @value = value
11
+
12
+ @value.extend(CreditCardSupport::CreditCardNumber)
13
+
14
+ validates_luhn &&
15
+ validates_testcard &&
16
+ validates_issuer_allowed
17
+ end
18
+
19
+ def validates_luhn
20
+ if !@value.luhn?
21
+ @record.errors.add(@attribute, t(:luhn_not_valid))
22
+ false
23
+ else
24
+ true
25
+ end
26
+ end
27
+
28
+ def validates_testcard
29
+ if !options[:allow_testcards] && @value.testcard?
30
+ @record.errors.add(@attribute, t(:testcard_not_supported))
31
+ false
32
+ else
33
+ true
34
+ end
35
+ end
36
+
37
+ def validates_issuer_allowed
38
+ if options[:allow_issuers] && !options[:allow_issuers].include?(@value.issuer)
39
+ @record.errors.add(@attribute, t(:issuer_not_supported, issuer: @value.issuer))
40
+ false
41
+ else
42
+ true
43
+ end
44
+ end
45
+
46
+ def t(code, *args)
47
+ I18n.t("credit_card_support.validators.number.messages.#{code}", *args)
48
+ end
4
49
 
5
- def validate_each(record, attribute, value)
6
- @record = record
7
- @attribute = attribute
8
- @value = value
9
-
10
- @value.extend(CreditCardSupport::CreditCardNumber)
11
-
12
- validates_luhn &&
13
- validates_testcard &&
14
- validates_issuer_allowed
15
- end
16
-
17
- def validates_luhn
18
- if !@value.luhn?
19
- @record.errors.add(@attribute, t(:luhn_not_valid))
20
- false
21
- else
22
- true
23
- end
24
- end
25
-
26
- def validates_testcard
27
- if !options[:allow_testcards] && @value.testcard?
28
- @record.errors.add(@attribute, t(:testcard_not_supported))
29
- false
30
- else
31
- true
32
50
  end
33
51
  end
34
-
35
- def validates_issuer_allowed
36
- if options[:allow_issuers] && !options[:allow_issuers].include?(@value.issuer)
37
- @record.errors.add(@attribute, t(:issuer_not_supported, issuer: @value.issuer))
38
- false
39
- else
40
- true
41
- end
42
- end
43
-
44
- def t(code, *args)
45
- I18n.t("credit_card_support.validators.number.messages.#{code}", *args)
46
- end
47
-
48
52
  end
@@ -2,7 +2,7 @@ module CreditCardSupport
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- PATCH = 1
5
+ PATCH = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
@@ -47,7 +47,7 @@ class CreditCardProduction < CreditCard
47
47
  end
48
48
 
49
49
 
50
- describe CreditCardNumberValidator do
50
+ describe ActiveModel::Validations::CreditCardNumberValidator do
51
51
  subject { CreditCardTest.new(number: '4012888888881881') }
52
52
 
53
53
  it "is valid" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: credit_card_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: