evelpidon_validators 0.4.0 → 0.4.2
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
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Evelpidon Validators changelog
|
2
2
|
|
3
|
+
## 0.4.2 / 2012-01-16
|
4
|
+
|
5
|
+
* Fixed type deprecation warning added in the wrong place
|
6
|
+
|
7
|
+
## 0.4.1 / 2012-01-16
|
8
|
+
|
9
|
+
* Renamed credit card validator type option to type_attribute (type is deprecated)
|
10
|
+
* Type is optional for a credit card validation
|
11
|
+
|
3
12
|
## 0.4.0 / 2012-01-13
|
4
13
|
|
5
14
|
* Fix for nested forms and sibling finding
|
@@ -1,7 +1,7 @@
|
|
1
1
|
clientSideValidations.validators.remote['credit_card'] = function(element, options) {
|
2
2
|
if ($.ajax({
|
3
3
|
url: '/validators/credit_card.json',
|
4
|
-
data: { value: element.val(), type: clientSideValidations.helpers.getSiblingField(element, options.
|
4
|
+
data: { value: element.val(), type: clientSideValidations.helpers.getSiblingField(element, options.type_attribute).val() },
|
5
5
|
async: false
|
6
6
|
}).status == 404) { return options.message; }
|
7
7
|
};
|
@@ -7,13 +7,24 @@ end
|
|
7
7
|
module ActiveModel
|
8
8
|
module Validations
|
9
9
|
class CreditCardValidator < EachValidator
|
10
|
+
def initialize(options)
|
11
|
+
if options[:type]
|
12
|
+
warn "The :type option has been deprecated, please use :type_attribute instead."
|
13
|
+
options[:type_attribute] ||= options[:type]
|
14
|
+
end
|
15
|
+
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
10
19
|
def self.valid_credit_card?(number, type)
|
11
|
-
|
20
|
+
if type
|
21
|
+
::CreditCardValidator::Validator.options[:allowed_card_types] = [type.underscore.to_sym]
|
22
|
+
end
|
12
23
|
::CreditCardValidator::Validator.valid?(number)
|
13
24
|
end
|
14
25
|
|
15
26
|
def validate_each(record, attribute, value)
|
16
|
-
unless self.class.valid_credit_card? value, record.send(options[:
|
27
|
+
unless self.class.valid_credit_card? value, record.send(options[:type_attribute])
|
17
28
|
record.errors.add(attribute, :credit_card, options)
|
18
29
|
end
|
19
30
|
end
|
data/test/credit_card_test.rb
CHANGED
@@ -6,7 +6,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
6
6
|
class Payment
|
7
7
|
include ActiveModel::Validations
|
8
8
|
attr_accessor :card_type, :card_number
|
9
|
-
validates :card_number, :credit_card => { :
|
9
|
+
validates :card_number, :credit_card => { :type_attribute => :card_type }
|
10
10
|
end
|
11
11
|
|
12
12
|
setup do
|
@@ -17,6 +17,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
17
17
|
test "visa cards" do
|
18
18
|
assert_valid_card_type_and_number 'Visa', '4111111111111111'
|
19
19
|
assert_valid_card_type_and_number 'visa', '4111111111111111'
|
20
|
+
assert_valid_card_type_and_number nil, '4111111111111111'
|
20
21
|
|
21
22
|
assert_invalid_card_type_and_number 'MasterCard', '4111111111111111'
|
22
23
|
assert_invalid_card_type_and_number 'DinersClub', '4111111111111111'
|
@@ -28,6 +29,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
28
29
|
test "master card cards" do
|
29
30
|
assert_valid_card_type_and_number 'MasterCard', '5555555555554444'
|
30
31
|
assert_valid_card_type_and_number 'master_card', '5555555555554444'
|
32
|
+
assert_valid_card_type_and_number nil, '5555555555554444'
|
31
33
|
|
32
34
|
assert_invalid_card_type_and_number 'Visa', '5555555555554444'
|
33
35
|
assert_invalid_card_type_and_number 'DinersClub', '5555555555554444'
|
@@ -39,6 +41,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
39
41
|
test "diners club cards" do
|
40
42
|
assert_valid_card_type_and_number 'DinersClub', '30569309025904'
|
41
43
|
assert_valid_card_type_and_number 'diners_club', '30569309025904'
|
44
|
+
assert_valid_card_type_and_number nil, '30569309025904'
|
42
45
|
|
43
46
|
assert_invalid_card_type_and_number 'Visa', '30569309025904'
|
44
47
|
assert_invalid_card_type_and_number 'MasterCard', '30569309025904'
|
@@ -50,6 +53,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
50
53
|
test "amex cards" do
|
51
54
|
assert_valid_card_type_and_number 'Amex', '371449635398431'
|
52
55
|
assert_valid_card_type_and_number 'amex', '371449635398431'
|
56
|
+
assert_valid_card_type_and_number nil, '371449635398431'
|
53
57
|
|
54
58
|
assert_invalid_card_type_and_number 'Visa', '371449635398431'
|
55
59
|
assert_invalid_card_type_and_number 'MasterCard', '371449635398431'
|
@@ -61,6 +65,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
61
65
|
test "discover cards" do
|
62
66
|
assert_valid_card_type_and_number 'Discover', '6011000990139424'
|
63
67
|
assert_valid_card_type_and_number 'discover', '6011000990139424'
|
68
|
+
assert_valid_card_type_and_number nil, '6011000990139424'
|
64
69
|
|
65
70
|
assert_invalid_card_type_and_number 'Visa', '6011000990139424'
|
66
71
|
assert_invalid_card_type_and_number 'MasterCard', '6011000990139424'
|
@@ -72,6 +77,7 @@ class CreditCardValidatorTest < ActiveSupport::TestCase
|
|
72
77
|
test "maestro cards" do
|
73
78
|
assert_valid_card_type_and_number 'Maestro', '6759671431256542'
|
74
79
|
assert_valid_card_type_and_number 'maestro', '6759671431256542'
|
80
|
+
assert_valid_card_type_and_number nil, '6759671431256542'
|
75
81
|
|
76
82
|
assert_invalid_card_type_and_number 'Visa', '6759671431256542'
|
77
83
|
assert_invalid_card_type_and_number 'MasterCard', '6759671431256542'
|
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.2
|
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-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
17
|
-
requirement: &
|
17
|
+
requirement: &14644520 !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: *14644520
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: activesupport
|
28
|
-
requirement: &
|
28
|
+
requirement: &14644080 !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: *14644080
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: evelpidon_test_helpers
|
39
|
-
requirement: &
|
39
|
+
requirement: &14643640 !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: *14643640
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: test-unit
|
50
|
-
requirement: &
|
50
|
+
requirement: &14643140 !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: *14643140
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: activemodel
|
61
|
-
requirement: &
|
61
|
+
requirement: &14642660 !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: *14642660
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: credit_card_validator
|
72
|
-
requirement: &
|
72
|
+
requirement: &14642200 !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: *14642200
|
81
81
|
description: Useful ActiveModel validators with ClientSideValidations support.
|
82
82
|
email:
|
83
83
|
- n.dimitrakopoulos@pamediakopes.gr
|