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.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