credit_card_validation 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use ruby-1.9.2-p290@credit_card_validation --create
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 = "https://github.com/rahult/credit_card_validation"
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 "activerecord", ">= 3.0.0"
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
- unless CreditCardValidation::Validator.new(value).valid?
11
- record.errors[attribute] << (options[:message] || "is not a valid credit card")
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 ClassMethods
18
-
19
- def validates_credit_card(*attributes)
20
- validates_with CreditCardValidator, _merge_attributes(*attributes)
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
@@ -1,3 +1,3 @@
1
1
  module CreditCardValidation
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  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
@@ -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.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: activerecord
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: https://github.com/rahult/credit_card_validation
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: -3495329243541790356
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: -3495329243541790356
202
+ hash: -4006868522902697339
171
203
  requirements: []
172
204
  rubyforge_project: credit_card_validation
173
- rubygems_version: 1.8.24
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