evelpidon_validators 0.4.2 → 0.4.3
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.
- data/CHANGELOG.md +5 -0
- data/lib/evelpidon_validators/credit_card.rb +6 -1
- data/lib/evelpidon_validators/version.rb +1 -1
- data/test/credit_card_test.rb +27 -0
- metadata +14 -14
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Evelpidon Validators changelog
|
2
2
|
|
3
|
+
## 0.4.3 / 2012-01-16
|
4
|
+
|
5
|
+
* Fixed bug with validation raising an error if number is nil.
|
6
|
+
* Fixed Credit Card Validator type_attribute option is optional.
|
7
|
+
|
3
8
|
## 0.4.2 / 2012-01-16
|
4
9
|
|
5
10
|
* Fixed type deprecation warning added in the wrong place
|
@@ -17,14 +17,19 @@ module ActiveModel
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.valid_credit_card?(number, type)
|
20
|
+
return false if number.nil?
|
21
|
+
|
20
22
|
if type
|
21
23
|
::CreditCardValidator::Validator.options[:allowed_card_types] = [type.underscore.to_sym]
|
24
|
+
else
|
25
|
+
::CreditCardValidator::Validator.options[:allowed_card_types] = nil
|
22
26
|
end
|
23
27
|
::CreditCardValidator::Validator.valid?(number)
|
24
28
|
end
|
25
29
|
|
26
30
|
def validate_each(record, attribute, value)
|
27
|
-
|
31
|
+
type = record.send(options[:type_attribute]) if options[:type_attribute]
|
32
|
+
unless self.class.valid_credit_card? value, type
|
28
33
|
record.errors.add(attribute, :credit_card, options)
|
29
34
|
end
|
30
35
|
end
|
data/test/credit_card_test.rb
CHANGED
@@ -14,6 +14,16 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
14
14
|
@payment = Payment.new
|
15
15
|
end
|
16
16
|
|
17
|
+
test "nil number" do
|
18
|
+
assert_invalid_card_type_and_number 'Visa', nil
|
19
|
+
assert_invalid_card_type_and_number 'MasterCard', nil
|
20
|
+
assert_invalid_card_type_and_number 'DinersClub', nil
|
21
|
+
assert_invalid_card_type_and_number 'Amex', nil
|
22
|
+
assert_invalid_card_type_and_number 'Discover', nil
|
23
|
+
assert_invalid_card_type_and_number 'Maestro', nil
|
24
|
+
assert_invalid_card_type_and_number nil, nil
|
25
|
+
end
|
26
|
+
|
17
27
|
test "visa cards" do
|
18
28
|
assert_valid_card_type_and_number 'Visa', '4111111111111111'
|
19
29
|
assert_valid_card_type_and_number 'visa', '4111111111111111'
|
@@ -86,6 +96,23 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
86
96
|
assert_invalid_card_type_and_number 'Discover', '6759671431256542'
|
87
97
|
end
|
88
98
|
|
99
|
+
test "type attribute option is optional" do
|
100
|
+
class PaymentWithNoTypeValidation
|
101
|
+
include ActiveModel::Validations
|
102
|
+
attr_accessor :card_type, :card_number
|
103
|
+
validates :card_number, :credit_card => true
|
104
|
+
end
|
105
|
+
|
106
|
+
@payment = PaymentWithNoTypeValidation.new
|
107
|
+
|
108
|
+
assert_valid_card_type_and_number 'Visa', '4111111111111111'
|
109
|
+
assert_valid_card_type_and_number 'MasterCard', '4111111111111111'
|
110
|
+
assert_valid_card_type_and_number 'DinersClub', '4111111111111111'
|
111
|
+
assert_valid_card_type_and_number 'Amex', '4111111111111111'
|
112
|
+
assert_valid_card_type_and_number 'Discover', '4111111111111111'
|
113
|
+
assert_valid_card_type_and_number 'Maestro', '4111111111111111'
|
114
|
+
end
|
115
|
+
|
89
116
|
#########
|
90
117
|
protected
|
91
118
|
#########
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evelpidon_validators
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-01-
|
13
|
+
date: 2012-01-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
|
-
requirement: &
|
17
|
+
requirement: &7759920 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *7759920
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activesupport
|
28
|
-
requirement: &
|
28
|
+
requirement: &7759480 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *7759480
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: evelpidon_test_helpers
|
39
|
-
requirement: &
|
39
|
+
requirement: &7759040 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *7759040
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: test-unit
|
50
|
-
requirement: &
|
50
|
+
requirement: &7758620 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *7758620
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: activemodel
|
61
|
-
requirement: &
|
61
|
+
requirement: &7758200 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *7758200
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: credit_card_validator
|
72
|
-
requirement: &
|
72
|
+
requirement: &7757720 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *7757720
|
81
81
|
description: Useful ActiveModel validators with ClientSideValidations support.
|
82
82
|
email:
|
83
83
|
- n.dimitrakopoulos@pamediakopes.gr
|