credit_card_validation 1.0.0 → 1.0.1
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/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-1.9.
|
1
|
+
rvm use ruby-1.9.3-p385@credit_card_validation --create
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = CreditCardValidation::VERSION
|
8
8
|
s.authors = ["Rahul Trikha"]
|
9
9
|
s.email = ["rahul.trikha@gmail.com"]
|
10
|
-
s.homepage = "
|
10
|
+
s.homepage = "http://rahult.github.com/credit_card_validation"
|
11
11
|
s.summary = %q{Offline Credit Card Validator written for Rails 3+ using ruby >= 1.9.2}
|
12
12
|
s.description = %q{A credit card validation library to check offline validity of any AMEX, Discover, MasterCard, Visa cards using length and Luhn algorithm.}
|
13
13
|
|
@@ -19,8 +19,10 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
21
|
# specify any dependencies here; for example:
|
22
|
-
s.add_dependency "
|
22
|
+
s.add_dependency "activemodel", ">= 3.0.0"
|
23
|
+
s.add_development_dependency "activerecord", ">= 3.0.0"
|
23
24
|
s.add_development_dependency "sqlite3"
|
25
|
+
s.add_development_dependency "pry"
|
24
26
|
s.add_development_dependency "rake"
|
25
27
|
s.add_development_dependency "turn"
|
26
28
|
s.add_development_dependency "growl"
|
@@ -7,19 +7,23 @@ module ActiveModel
|
|
7
7
|
class CreditCardValidator < ActiveModel::EachValidator
|
8
8
|
|
9
9
|
def validate_each(record, attribute, value)
|
10
|
-
|
11
|
-
record.errors
|
10
|
+
if !value.blank? && !CreditCardValidation::Validator.new(value).valid?
|
11
|
+
record.errors.add(attribute, options[:message] || "is not a valid credit card")
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
end
|
16
16
|
|
17
|
-
module
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
module HelperMethods
|
18
|
+
# Validates whether the value of the specified attribute is a validate Credit Card
|
19
|
+
#
|
20
|
+
# class Order < ActiveRecord::Base
|
21
|
+
# validates_credit_card :card_number
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
def validates_credit_card(*attr_names)
|
25
|
+
validates_with CreditCardValidator, _merge_attributes(attr_names)
|
21
26
|
end
|
22
|
-
|
23
27
|
end
|
24
28
|
|
25
29
|
end
|
@@ -73,4 +73,31 @@ describe ActiveModel::Validations::CreditCardValidator do
|
|
73
73
|
@credit_card.wont_be :valid?
|
74
74
|
end
|
75
75
|
end
|
76
|
+
|
77
|
+
describe "validation can be added using the legacy method" do
|
78
|
+
it "should add validation when using legacy method" do
|
79
|
+
class CreditCard < ActiveRecord::Base
|
80
|
+
validates_credit_card :card_number
|
81
|
+
end
|
82
|
+
|
83
|
+
@credit_card = CreditCard.new
|
84
|
+
@credit_card.card_number = "411111111"
|
85
|
+
|
86
|
+
@credit_card.wont_be :valid?
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "error message can be ovewritten by using a custom message hash" do
|
91
|
+
it "should respond with a custom a error message if message hash is passed" do
|
92
|
+
class CreditCard < ActiveRecord::Base
|
93
|
+
validates :card_number, credit_card: { message: "card is not valid?" }
|
94
|
+
end
|
95
|
+
|
96
|
+
@credit_card = CreditCard.new
|
97
|
+
@credit_card.card_number = "4111111111111"
|
98
|
+
@credit_card.save
|
99
|
+
|
100
|
+
@credit_card.errors.messages[:card_number].must_include "card is not valid?"
|
101
|
+
end
|
102
|
+
end
|
76
103
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,6 +3,7 @@ require 'minitest/spec'
|
|
3
3
|
require 'minitest/autorun'
|
4
4
|
require 'credit_card_validation'
|
5
5
|
require 'active_record'
|
6
|
+
require 'pry'
|
6
7
|
|
7
8
|
ActiveRecord::Base.establish_connection(
|
8
9
|
:adapter => 'sqlite3',
|
@@ -17,4 +18,8 @@ ActiveRecord::Schema.define do
|
|
17
18
|
t.string :card_number
|
18
19
|
end
|
19
20
|
|
21
|
+
create_table :orders, :force => true do |t|
|
22
|
+
t.string :card_number
|
23
|
+
end
|
24
|
+
|
20
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: credit_card_validation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ cert_chain: []
|
|
12
12
|
date: 2013-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: activemodel
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.0.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: activerecord
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.0.0
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.0
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: sqlite3
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,6 +59,22 @@ dependencies:
|
|
43
59
|
- - ! '>='
|
44
60
|
- !ruby/object:Gem::Version
|
45
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: pry
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
46
78
|
- !ruby/object:Gem::Dependency
|
47
79
|
name: rake
|
48
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,7 +176,7 @@ files:
|
|
144
176
|
- spec/active_record_validator_spec.rb
|
145
177
|
- spec/credit_card_validation_spec.rb
|
146
178
|
- spec/spec_helper.rb
|
147
|
-
homepage:
|
179
|
+
homepage: http://rahult.github.com/credit_card_validation
|
148
180
|
licenses: []
|
149
181
|
post_install_message:
|
150
182
|
rdoc_options: []
|
@@ -158,7 +190,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
190
|
version: '0'
|
159
191
|
segments:
|
160
192
|
- 0
|
161
|
-
hash: -
|
193
|
+
hash: -4006868522902697339
|
162
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
195
|
none: false
|
164
196
|
requirements:
|
@@ -167,10 +199,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
199
|
version: '0'
|
168
200
|
segments:
|
169
201
|
- 0
|
170
|
-
hash: -
|
202
|
+
hash: -4006868522902697339
|
171
203
|
requirements: []
|
172
204
|
rubyforge_project: credit_card_validation
|
173
|
-
rubygems_version: 1.8.
|
205
|
+
rubygems_version: 1.8.25
|
174
206
|
signing_key:
|
175
207
|
specification_version: 3
|
176
208
|
summary: Offline Credit Card Validator written for Rails 3+ using ruby >= 1.9.2
|