activevalidators 3.1.2 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.travis.yml +1 -4
  5. data/ChangeLog.md +16 -1
  6. data/README.md +4 -2
  7. data/activevalidators.gemspec +1 -1
  8. data/certs/franckverrot.pem +0 -0
  9. data/checksums/3.1.2.sha512 +1 -0
  10. data/lib/{active_model → active_validators/active_model}/validations/barcode_validator.rb +2 -2
  11. data/lib/{active_model → active_validators/active_model}/validations/credit_card_validator.rb +1 -1
  12. data/lib/{active_model → active_validators/active_model}/validations/date_validator.rb +0 -0
  13. data/lib/{active_model → active_validators/active_model}/validations/email_validator.rb +1 -1
  14. data/lib/active_validators/active_model/validations/hex_color_validator.rb +11 -0
  15. data/lib/{active_model → active_validators/active_model}/validations/ip_validator.rb +0 -0
  16. data/lib/{active_model → active_validators/active_model}/validations/nino_validator.rb +0 -0
  17. data/lib/{active_model → active_validators/active_model}/validations/password_validator.rb +0 -0
  18. data/lib/{active_model → active_validators/active_model}/validations/phone_validator.rb +2 -0
  19. data/lib/{active_model → active_validators/active_model}/validations/postal_code_validator.rb +0 -0
  20. data/lib/active_validators/active_model/validations/regexp_validator.rb +22 -0
  21. data/lib/{active_model → active_validators/active_model}/validations/respond_to_validator.rb +0 -0
  22. data/lib/{active_model → active_validators/active_model}/validations/shared/luhn_checker.rb +0 -0
  23. data/lib/{active_model → active_validators/active_model}/validations/sin_validator.rb +2 -2
  24. data/lib/{active_model → active_validators/active_model}/validations/siren_validator.rb +0 -0
  25. data/lib/{active_model → active_validators/active_model}/validations/slug_validator.rb +0 -0
  26. data/lib/{active_model → active_validators/active_model}/validations/ssn_validator.rb +7 -5
  27. data/lib/{active_model → active_validators/active_model}/validations/tracking_number_validator.rb +0 -0
  28. data/lib/{active_model → active_validators/active_model}/validations/twitter_validator.rb +0 -0
  29. data/lib/{active_model → active_validators/active_model}/validations/url_validator.rb +0 -0
  30. data/lib/activevalidators.rb +2 -4
  31. data/test/test_helper.rb +2 -1
  32. data/test/validations/barcode_test.rb +9 -1
  33. data/test/validations/hex_color_test.rb +55 -0
  34. data/test/validations/regexp_test.rb +35 -0
  35. data/test/validations/ssn_test.rb +8 -8
  36. metadata +27 -20
  37. metadata.gz.sig +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d1e773070ad87f01d07d2e87651e3e8001c0473c
4
- data.tar.gz: a2cde43cd5fdcde2ccc74e0f8d4bf9f9dbd48844
3
+ metadata.gz: d2bfed38515b9a564947994fcb1c43dfe88ad510
4
+ data.tar.gz: 3e4f455a22673e298c4c7957b59ce227e3c122c8
5
5
  SHA512:
6
- metadata.gz: 05f361d20a538d9d595cb3a2a1acaafd63250583264f498699938bcb36018031acd74f6e319fcc03e971f2a26850bde67f1c7ec880757195dcd6e386250c8ac3
7
- data.tar.gz: 7547475f7df3d356cd79942f8458d1300082cd4fb491455fded6d2f229173762dfee2ecc654b7229dbff9d1ba243df32d5fda80860f381ab0d744cc4f38640a4
6
+ metadata.gz: 537572510a16b9f160eefdc2fde8ab7301049f7f967a09d226a17108183849ee18ff3b7e3ef7223055558e2f6a9c16448b53394332cd43e7f5f2b451a2fb8618
7
+ data.tar.gz: 935a66f8260aadc377cb2f7a8277d5fa8bdf0a158709211d2ba164a7d61b9d57dcc7375b1f1381f533fbefa193d77d8a280c0f0381d9446a36f6ec4dd96f9aa5
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.travis.yml CHANGED
@@ -3,9 +3,6 @@ rvm:
3
3
  - 1.9.3
4
4
  - 2.1.0
5
5
  - jruby-19mode
6
- - rbx-2
7
6
  - ruby-head
8
7
  - jruby-head
9
- matrix:
10
- allow_failures:
11
- - rvm: jruby-head
8
+ - rbx-2
data/ChangeLog.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # UNRELEASED
2
2
 
3
- * Nothing yet.
3
+ # 3.2.0
4
+
5
+ ## MAJOR CHANGES
6
+
7
+ * Ensure the $LOAD\_PATH could never break ActiveValidators (see #71 for details)
8
+
9
+ ## DEPRECATION
10
+
11
+ * [SSN validations doesn't support any options anymore][ssn_validation_options]
12
+
13
+ ## FEATURES
14
+
15
+ * Regexp validator.
4
16
 
5
17
  # 3.1.0
6
18
 
@@ -195,3 +207,6 @@
195
207
  * Add errors with the ActiveModel::Errors#add method -> i18n support
196
208
  * Add phone format validator
197
209
  * Public release
210
+
211
+
212
+ [ssn_validation_options]: https://github.com/franckverrot/activevalidators/commit/dee076a8e344897f0325747504625285be7da226
data/README.md CHANGED
@@ -50,7 +50,7 @@ In your models, the gem provides new validators like `email`, or `url`:
50
50
  ```ruby
51
51
  class User
52
52
  validates :email_address, :email => true # == :email => { :strict => false }
53
- validates :link_url, :url => true
53
+ validates :link_url, :url => true # (Could be combined with `allow_blank: true`)
54
54
  validates :user_phone, :phone => true
55
55
  validates :company_siren, :siren => true
56
56
  validates :password, :password => { :strength => :medium }
@@ -109,11 +109,13 @@ Exhaustive list of supported validators and their implementation:
109
109
  * `siren`
110
110
  * `slug` : based on `ActiveSupport::String#parameterize`
111
111
  * `sin` : Social Insurance Number (only for Canada). You also can allow permanent residents cards (such cards start with '9'): `:sin => {:country => :canada, :country_options => {allow_permanent_residents: true}}`
112
- * `ssn` : Social Security Number (only for USA). You also may pass type, instead of boolean: `:ssn => {:type => :usa_ssn}` as the alternative.
112
+ * `ssn` : Social Security Number (only for USA).
113
113
  * `tracking_number`: based on a set of predefined masks
114
114
  * `twitter` : based on a regular expression
115
115
  * `url` : based on a regular expression
116
116
  * `barcode` : based on known formats (:ean13 only for now)
117
+ * `hex_color` : based on a regular expression
118
+ * `regexp` : uses Ruby's [`Regexp.compile`](http://www.ruby-doc.org/core-2.1.1/Regexp.html#method-c-new) method
117
119
 
118
120
  ## Todo
119
121
 
@@ -1,7 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'activevalidators'
4
- s.version = '3.1.2'
4
+ s.version = '3.2.0'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ['Franck Verrot', 'Paco Guzmán', 'Oriol Gual', 'Garrett Bjerkhoel', 'Renato Riccieri Santos Zannon', 'Brian Moseley', 'Serj L aka Loremaster']
7
7
  s.email = ['franck@verrot.fr']
File without changes
@@ -0,0 +1 @@
1
+ 4faf052c6018bd3f17ab23c2cc6f5e2e7c9beaadd3fbb85652fc70cac785b1a6886ffa1a0d0c164607acf5bbf43881f7a17b75a3eba5647784d7c67c274574c4
@@ -12,7 +12,7 @@ module ActiveModel
12
12
 
13
13
  def validate_each(record, attribute, value)
14
14
  method = "valid_#{options[:format].to_s}?"
15
- record.errors.add(attribute) if value.blank? || !self.send(method, value)
15
+ record.errors.add(attribute) if value.blank? || !self.send(method, value.to_s)
16
16
  end
17
17
 
18
18
  def valid_ean13?(value)
@@ -32,7 +32,7 @@ module ActiveModel
32
32
  uneven_sum += digit.to_i
33
33
  end
34
34
  end
35
- (10 - ((even_sum*3 + uneven_sum) % 10)).to_s
35
+ ((10 - ((even_sum*3 + uneven_sum) % 10)) % 10).to_s
36
36
  end
37
37
  end
38
38
  end
@@ -1,4 +1,4 @@
1
- require 'active_model/validations/shared/luhn_checker'
1
+ require 'active_validators/active_model/validations/shared/luhn_checker'
2
2
 
3
3
  module ActiveModel
4
4
  module Validations
@@ -11,7 +11,7 @@ module ActiveModel
11
11
  mail = Mail::Address.new(value)
12
12
 
13
13
  valid = basic_check(mail) && value.include?(mail.address)
14
- rescue Exception => e
14
+ rescue Exception => _
15
15
  valid = false
16
16
  end
17
17
 
@@ -0,0 +1,11 @@
1
+ module ActiveModel
2
+ module Validations
3
+ class HexColorValidator < EachValidator
4
+ def validate_each(record, attribute, value)
5
+ unless value =~ /\A(\h{3}){,2}\z/
6
+ record.errors.add(attribute)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,5 @@
1
+ require 'phony'
2
+ require 'countries'
1
3
  module ActiveModel
2
4
  module Validations
3
5
  class PhoneValidator < EachValidator
@@ -0,0 +1,22 @@
1
+ module ActiveModel
2
+ module Validations
3
+ class RegexpValidator < EachValidator
4
+ def validate_each(record, attribute, value)
5
+ unless valid_regexp?(value)
6
+ record.errors.add(attribute)
7
+ end
8
+ end
9
+
10
+
11
+ private
12
+
13
+ def valid_regexp?(value)
14
+ Regexp.compile(value.to_s)
15
+ true
16
+
17
+ rescue RegexpError
18
+ false
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,4 +1,4 @@
1
- require 'active_model/validations/shared/luhn_checker'
1
+ require 'active_validators/active_model/validations/shared/luhn_checker'
2
2
 
3
3
  module ActiveModel
4
4
  module Validations
@@ -59,4 +59,4 @@ module ActiveModel
59
59
  end
60
60
  end
61
61
  end
62
- end
62
+ end
@@ -2,16 +2,18 @@ module ActiveModel
2
2
  module Validations
3
3
  class SsnValidator < EachValidator
4
4
  def validate_each(record, attribute, value)
5
- type = options.fetch(:type, :usa_ssn) # :usa_ssn is default.
6
- record.errors.add(attribute) if value.blank? || !SsnValidatorGeneral.valid?(type, value)
5
+ record.errors.add(attribute) if value.blank? || !SsnValidatorGeneral.valid?(options, value)
7
6
  end
8
7
  end
9
8
 
9
+ # <b>DEPRECATED:</b> Please use <tt>:ssn => true</tt> instead.
10
10
  class SsnValidatorGeneral
11
- def self.valid?(type, value)
12
- if type == :usa_ssn
13
- SsnValidatorUSA.new(value).valid?
11
+ def self.valid?(options, value)
12
+ if options[:type] == :usa_ssn
13
+ warn "[DEPRECATION] providing {:type => :usa_ssn} is deprecated and will be removed in the future. Please use `:ssn => true` instead."
14
14
  end
15
+
16
+ SsnValidatorUSA.new(value).valid?
15
17
  end
16
18
  end
17
19
 
@@ -1,11 +1,9 @@
1
1
  require 'active_model'
2
- require 'phony'
3
- require 'countries'
4
2
  require 'active_validators/one_nine_shims/one_nine_string'
5
3
 
6
4
  module ActiveValidators
7
5
  def self.activevalidators
8
- %w(email url respond_to phone slug ip credit_card date password twitter postal_code tracking_number siren ssn sin nino barcode date)
6
+ %w(email url respond_to phone slug ip credit_card date password twitter postal_code tracking_number siren ssn sin nino barcode date hex_color regexp)
9
7
  end
10
8
 
11
9
  # Require each validator independently or just pass :all
@@ -17,7 +15,7 @@ module ActiveValidators
17
15
  syms = validators.include?(:all) ? activevalidators : validators.map(&:to_s) & activevalidators
18
16
 
19
17
  syms.each do |validator_name|
20
- require "active_model/validations/#{validator_name}_validator"
18
+ require "active_validators/active_model/validations/#{validator_name}_validator"
21
19
  end
22
20
  end
23
21
 
data/test/test_helper.rb CHANGED
@@ -14,7 +14,8 @@ class TestRecord
14
14
  include ActiveModel::Validations
15
15
  attr_accessor :ip, :url, :slug, :responder, :global_condition,
16
16
  :local_condition, :phone, :email, :card, :password, :twitter_username,
17
- :postal_code, :carrier, :tracking_number, :start_date, :end_date, :siren, :ssn, :sin, :nino, :barcode
17
+ :postal_code, :carrier, :tracking_number, :start_date, :end_date, :siren, :ssn, :sin, :nino, :barcode,
18
+ :text_color, :redirect_rule
18
19
 
19
20
  def initialize(attrs = {})
20
21
  attrs.each_pair { |k,v| send("#{k}=", v) }
@@ -4,7 +4,15 @@ ActiveValidators.activate(:barcode)
4
4
  describe "Barcode Validation" do
5
5
  describe "EAN13 Validation" do
6
6
  it "accepts valid EAN13s" do
7
- subject = build_barcode_record :ean13, :barcode => "9782940199617"
7
+ ["9782940199617", "9782940199600"].each do |barcode|
8
+ subject = build_barcode_record :ean13, :barcode => barcode
9
+ subject.valid?.must_equal true
10
+ subject.errors.size.must_equal 0
11
+ end
12
+ end
13
+
14
+ it "accepts EAN13s as integers" do
15
+ subject = build_barcode_record :ean13, :barcode => 9782940199617
8
16
  subject.valid?.must_equal true
9
17
  subject.errors.size.must_equal 0
10
18
  end
@@ -0,0 +1,55 @@
1
+ require 'test_helper'
2
+ ActiveValidators.activate(:hex_color)
3
+
4
+ describe "Hex-Color Validation" do
5
+ let(:invalid_message) { subject.errors.generate_message(:text_color, :invalid) }
6
+
7
+ subject { TestRecord.new }
8
+
9
+ before do
10
+ TestRecord.reset_callbacks(:validate)
11
+ TestRecord.validates :text_color, :hex_color => true
12
+ end
13
+
14
+ it "accepts blank value" do
15
+ subject.text_color = ''
16
+
17
+ subject.must_be :valid?
18
+ subject.errors.must_be :empty?
19
+ end
20
+
21
+ it "accepts 3 hex characters" do
22
+ subject.text_color = 'abc'
23
+
24
+ subject.must_be :valid?
25
+ subject.errors.must_be :empty?
26
+ end
27
+
28
+ it "accepts 6 hex characters" do
29
+ subject.text_color = 'abc012'
30
+
31
+ subject.must_be :valid?
32
+ subject.errors.must_be :empty?
33
+ end
34
+
35
+ it "rejects non-hex characters" do
36
+ subject.text_color = 'efg345'
37
+
38
+ subject.must_be :invalid?
39
+ subject.errors[:text_color].must_include invalid_message
40
+ end
41
+
42
+ it "rejects too few characters" do
43
+ subject.text_color = 'ef'
44
+
45
+ subject.must_be :invalid?
46
+ subject.errors[:text_color].must_include invalid_message
47
+ end
48
+
49
+ it "rejects too many characters" do
50
+ subject.text_color = 'efab001'
51
+
52
+ subject.must_be :invalid?
53
+ subject.errors[:text_color].must_include invalid_message
54
+ end
55
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+ ActiveValidators.activate(:regexp)
3
+
4
+ describe "Regexp Validation" do
5
+ let(:invalid_message) { subject.errors.generate_message(:redirect_rule, :invalid) }
6
+
7
+ subject { TestRecord.new }
8
+
9
+ before do
10
+ TestRecord.reset_callbacks(:validate)
11
+ TestRecord.validates :redirect_rule, :regexp => true
12
+ end
13
+
14
+ it "accepts blank value" do
15
+ subject.redirect_rule = ''
16
+
17
+ subject.must_be :valid?
18
+ subject.errors.must_be :empty?
19
+ end
20
+
21
+ it "rejects malformed regular expressions" do
22
+ subject.redirect_rule = '['
23
+
24
+ subject.must_be :invalid?
25
+ subject.errors[:redirect_rule].must_include invalid_message
26
+ end
27
+
28
+ it "allow proper regular expressions" do
29
+ subject.redirect_rule = '^/vanity-url(-2014)?'
30
+
31
+ subject.must_be :valid?
32
+ subject.errors.must_be :empty?
33
+ end
34
+
35
+ end
@@ -5,45 +5,45 @@ describe "SSN validations" do
5
5
  describe "USA ssn" do
6
6
  describe "for invalid" do
7
7
  it "rejects empty ssn" do
8
- subject = build_ssn_record({:ssn => ''}, {:type => :usa_ssn})
8
+ subject = build_ssn_record({:ssn => ''}, true)
9
9
  subject.valid?.must_equal false
10
10
  end
11
11
 
12
12
  it "rejects ssn when it doesn't consist of numbers" do
13
- subject = build_ssn_record({:ssn => 'aaabbcccc'}, {:type => :usa_ssn})
13
+ subject = build_ssn_record({:ssn => 'aaabbcccc'}, true)
14
14
  subject.valid?.must_equal false
15
15
  end
16
16
 
17
17
  it "rejects ssn when the first group of digits is 000" do
18
- subject = build_ssn_record({:ssn => '000112222'}, {:type => :usa_ssn})
18
+ subject = build_ssn_record({:ssn => '000112222'}, true)
19
19
  subject.valid?.must_equal false
20
20
  end
21
21
 
22
22
  it "rejects ssn when the first group of digits is 666" do
23
- subject = build_ssn_record({:ssn => '666112222'}, {:type => :usa_ssn})
23
+ subject = build_ssn_record({:ssn => '666112222'}, true)
24
24
  subject.valid?.must_equal false
25
25
  end
26
26
 
27
27
  (900..999).each do |first_group_num|
28
28
  it "rejects ssn when the first group of digits is #{first_group_num}" do
29
- subject = build_ssn_record({:ssn => "#{first_group_num}112222"}, {:type => :usa_ssn})
29
+ subject = build_ssn_record({:ssn => "#{first_group_num}112222"}, true)
30
30
  subject.valid?.must_equal false
31
31
  end
32
32
  end
33
33
 
34
34
  it "reject ssn when the second group of digits is 00" do
35
- subject = build_ssn_record({:ssn => "555002222"}, {:type => :usa_ssn})
35
+ subject = build_ssn_record({:ssn => "555002222"}, true)
36
36
  subject.valid?.must_equal false
37
37
  end
38
38
 
39
39
  it "reject ssn when the third group of digits is 0000" do
40
- subject = build_ssn_record({:ssn => "555660000"}, {:type => :usa_ssn})
40
+ subject = build_ssn_record({:ssn => "555660000"}, true)
41
41
  subject.valid?.must_equal false
42
42
  end
43
43
 
44
44
  (987654320..987654329).each do |reserved_ssn|
45
45
  it "rejects reserved ssn such as #{reserved_ssn}" do
46
- subject = build_ssn_record({:ssn => "#{reserved_ssn}"}, {:type => :usa_ssn})
46
+ subject = build_ssn_record({:ssn => "#{reserved_ssn}"}, true)
47
47
  subject.valid?.must_equal false
48
48
  end
49
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activevalidators
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.2
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franck Verrot
@@ -36,7 +36,7 @@ cert_chain:
36
36
  UeH0jxnbT6lYw622u74Z7Dd6iQfaOy1h+iJxnCQglf70rs9bS665Nr0QvvrbW8Hz
37
37
  Vr/YT3S8RkdBsIdM
38
38
  -----END CERTIFICATE-----
39
- date: 2014-09-07 00:00:00.000000000 Z
39
+ date: 2014-10-22 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
@@ -166,24 +166,27 @@ files:
166
166
  - Rakefile
167
167
  - activevalidators.gemspec
168
168
  - certs/franckverrot.pem
169
- - lib/active_model/validations/barcode_validator.rb
170
- - lib/active_model/validations/credit_card_validator.rb
171
- - lib/active_model/validations/date_validator.rb
172
- - lib/active_model/validations/email_validator.rb
173
- - lib/active_model/validations/ip_validator.rb
174
- - lib/active_model/validations/nino_validator.rb
175
- - lib/active_model/validations/password_validator.rb
176
- - lib/active_model/validations/phone_validator.rb
177
- - lib/active_model/validations/postal_code_validator.rb
178
- - lib/active_model/validations/respond_to_validator.rb
179
- - lib/active_model/validations/shared/luhn_checker.rb
180
- - lib/active_model/validations/sin_validator.rb
181
- - lib/active_model/validations/siren_validator.rb
182
- - lib/active_model/validations/slug_validator.rb
183
- - lib/active_model/validations/ssn_validator.rb
184
- - lib/active_model/validations/tracking_number_validator.rb
185
- - lib/active_model/validations/twitter_validator.rb
186
- - lib/active_model/validations/url_validator.rb
169
+ - checksums/3.1.2.sha512
170
+ - lib/active_validators/active_model/validations/barcode_validator.rb
171
+ - lib/active_validators/active_model/validations/credit_card_validator.rb
172
+ - lib/active_validators/active_model/validations/date_validator.rb
173
+ - lib/active_validators/active_model/validations/email_validator.rb
174
+ - lib/active_validators/active_model/validations/hex_color_validator.rb
175
+ - lib/active_validators/active_model/validations/ip_validator.rb
176
+ - lib/active_validators/active_model/validations/nino_validator.rb
177
+ - lib/active_validators/active_model/validations/password_validator.rb
178
+ - lib/active_validators/active_model/validations/phone_validator.rb
179
+ - lib/active_validators/active_model/validations/postal_code_validator.rb
180
+ - lib/active_validators/active_model/validations/regexp_validator.rb
181
+ - lib/active_validators/active_model/validations/respond_to_validator.rb
182
+ - lib/active_validators/active_model/validations/shared/luhn_checker.rb
183
+ - lib/active_validators/active_model/validations/sin_validator.rb
184
+ - lib/active_validators/active_model/validations/siren_validator.rb
185
+ - lib/active_validators/active_model/validations/slug_validator.rb
186
+ - lib/active_validators/active_model/validations/ssn_validator.rb
187
+ - lib/active_validators/active_model/validations/tracking_number_validator.rb
188
+ - lib/active_validators/active_model/validations/twitter_validator.rb
189
+ - lib/active_validators/active_model/validations/url_validator.rb
187
190
  - lib/active_validators/one_nine_shims/one_nine_string.rb
188
191
  - lib/activevalidators.rb
189
192
  - test/test_helper.rb
@@ -191,11 +194,13 @@ files:
191
194
  - test/validations/credit_card_test.rb
192
195
  - test/validations/date_test.rb
193
196
  - test/validations/email_test.rb
197
+ - test/validations/hex_color_test.rb
194
198
  - test/validations/ip_test.rb
195
199
  - test/validations/nino_test.rb
196
200
  - test/validations/password_test.rb
197
201
  - test/validations/phone_test.rb
198
202
  - test/validations/postal_code_test.rb
203
+ - test/validations/regexp_test.rb
199
204
  - test/validations/respond_to_test.rb
200
205
  - test/validations/sin_test.rb
201
206
  - test/validations/siren_test.rb
@@ -234,11 +239,13 @@ test_files:
234
239
  - test/validations/credit_card_test.rb
235
240
  - test/validations/date_test.rb
236
241
  - test/validations/email_test.rb
242
+ - test/validations/hex_color_test.rb
237
243
  - test/validations/ip_test.rb
238
244
  - test/validations/nino_test.rb
239
245
  - test/validations/password_test.rb
240
246
  - test/validations/phone_test.rb
241
247
  - test/validations/postal_code_test.rb
248
+ - test/validations/regexp_test.rb
242
249
  - test/validations/respond_to_test.rb
243
250
  - test/validations/sin_test.rb
244
251
  - test/validations/siren_test.rb
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- �<��HC*f��x�s]ݱ8������Xs1f��F�6��b8&c�`���<&�ܣ�zӡ �7��[��%�
1
+ l����M�����v?o��Y)۱^aT��o =�1p���;�- F��g$�+/�/F��L\�@