activevalidators 1.7.1 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -21,7 +21,7 @@ In your models, the gem provides new validators like `email`, or `url`:
21
21
  validates :twitter_at, :twitter => { :format => :username_with_at }
22
22
  validates :twitter_url, :twitter => { :format => :url }
23
23
  validates :twitter, :twitter => true
24
- validates :postal_code, :postal_code => { :format => :us }
24
+ validates :postal_code, :postal_code => { :country => :us }
25
25
  end
26
26
 
27
27
  class Article
data/Rakefile CHANGED
@@ -12,8 +12,6 @@ Rake::TestTask.new do |t|
12
12
  t.warning = true
13
13
  end
14
14
 
15
- require 'turn'
16
-
17
15
  # -*- encoding: utf-8 -*-
18
16
  $:.unshift File.expand_path("../lib", __FILE__)
19
17
  require 'activevalidators'
@@ -15,7 +15,6 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.add_development_dependency "bundler"
17
17
  s.add_development_dependency "minitest"
18
- s.add_development_dependency "turn"
19
18
  s.add_dependency 'rake' , '>= 0.8.7'
20
19
  s.add_dependency 'activerecord' , '>= 3.0.0'
21
20
  s.add_dependency 'activemodel' , '>= 3.0.0'
@@ -3,15 +3,22 @@ module ActiveModel
3
3
  class PostalCodeValidator < EachValidator
4
4
  def validate_each(record, attribute, value)
5
5
  @value = value
6
- country = options[:country] || :us
7
- @formats = PostalCodeValidator.known_formats[country]
6
+ unless country = options[:country]
7
+ if country_method = options[:country_method]
8
+ country = record.send(country_method)
9
+ else
10
+ country = 'us'
11
+ end
12
+ end
13
+ @formats = PostalCodeValidator.known_formats[country.to_s]
8
14
  raise "No known postal code formats for country #{country}" unless @formats
9
15
  record.errors.add(attribute) if value.blank? || !matches_any?
10
16
  end
11
17
 
12
18
  def self.known_formats
13
19
  @@known_formats ||= {
14
- :us => ['#####', '#####-####'],
20
+ 'us' => ['#####', '#####-####'],
21
+ 'pt' => ['####', '####-###'],
15
22
  }
16
23
  end
17
24
 
@@ -44,7 +44,7 @@ module ActiveModel
44
44
 
45
45
  MOD10_WEIGHTS = [3,1]
46
46
  def usps_mod10(chars)
47
- 10 - weighted_sum(chars.reverse, MOD10_WEIGHTS) % 10
47
+ (10 - weighted_sum(chars.reverse, MOD10_WEIGHTS) % 10) % 10
48
48
  end
49
49
 
50
50
  MOD11_WEIGHTS = [8,6,4,2,3,5,9,7]
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module ActiveValidators
3
- VERSION = '1.7.1'
3
+ VERSION = '1.8.0'
4
4
  end
data/test/test_helper.rb CHANGED
@@ -3,7 +3,6 @@ require 'rubygems'
3
3
  # silence warnings
4
4
  old_w, $-w = $-w, false
5
5
 
6
- begin; require 'turn'; rescue LoadError; end
7
6
  require 'minitest/spec'
8
7
  require 'minitest/mock'
9
8
  require 'minitest/autorun'
@@ -11,6 +11,6 @@ describe "Date Validation" do
11
11
  d = TestRecord.new(:start_date => Time.now, :end_date => Time.now - 1)
12
12
 
13
13
  refute d.valid?
14
- refute_includes d.errors.map(&:to_s).join, 'translation missing'
14
+ refute_includes d.errors.to_s, 'translation missing'
15
15
  end
16
16
  end
@@ -68,6 +68,10 @@ describe "Tracking Number Validation" do
68
68
  assert_valid_tracking_number({:carrier => :usps}, '71123456789123456787')
69
69
  end
70
70
 
71
+ it '20 character USS128 tracking number with valid MOD10 check digit ending in 0' do
72
+ assert_valid_tracking_number({:carrier => :usps}, '03110240000115809160')
73
+ end
74
+
71
75
  it '22 character USS128 tracking number with valid MOD10 check digit' do
72
76
  assert_valid_tracking_number({:carrier => :usps}, '9171969010756003077385')
73
77
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activevalidators
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 7
9
- - 1
10
- version: 1.7.1
8
+ - 8
9
+ - 0
10
+ version: 1.8.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Franck Verrot
@@ -20,7 +20,7 @@ autorequire:
20
20
  bindir: bin
21
21
  cert_chain: []
22
22
 
23
- date: 2011-10-02 00:00:00 Z
23
+ date: 2011-11-26 00:00:00 Z
24
24
  dependencies:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
@@ -50,24 +50,10 @@ dependencies:
50
50
  version: "0"
51
51
  type: :development
52
52
  version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: turn
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 3
62
- segments:
63
- - 0
64
- version: "0"
65
- type: :development
66
- version_requirements: *id003
67
53
  - !ruby/object:Gem::Dependency
68
54
  name: rake
69
55
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ requirement: &id003 !ruby/object:Gem::Requirement
71
57
  none: false
72
58
  requirements:
73
59
  - - ">="
@@ -79,11 +65,11 @@ dependencies:
79
65
  - 7
80
66
  version: 0.8.7
81
67
  type: :runtime
82
- version_requirements: *id004
68
+ version_requirements: *id003
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: activerecord
85
71
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ requirement: &id004 !ruby/object:Gem::Requirement
87
73
  none: false
88
74
  requirements:
89
75
  - - ">="
@@ -95,11 +81,11 @@ dependencies:
95
81
  - 0
96
82
  version: 3.0.0
97
83
  type: :runtime
98
- version_requirements: *id005
84
+ version_requirements: *id004
99
85
  - !ruby/object:Gem::Dependency
100
86
  name: activemodel
101
87
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ requirement: &id005 !ruby/object:Gem::Requirement
103
89
  none: false
104
90
  requirements:
105
91
  - - ">="
@@ -111,11 +97,11 @@ dependencies:
111
97
  - 0
112
98
  version: 3.0.0
113
99
  type: :runtime
114
- version_requirements: *id006
100
+ version_requirements: *id005
115
101
  - !ruby/object:Gem::Dependency
116
102
  name: mail
117
103
  prerelease: false
118
- requirement: &id007 !ruby/object:Gem::Requirement
104
+ requirement: &id006 !ruby/object:Gem::Requirement
119
105
  none: false
120
106
  requirements:
121
107
  - - ">="
@@ -125,11 +111,11 @@ dependencies:
125
111
  - 0
126
112
  version: "0"
127
113
  type: :runtime
128
- version_requirements: *id007
114
+ version_requirements: *id006
129
115
  - !ruby/object:Gem::Dependency
130
116
  name: date_validator
131
117
  prerelease: false
132
- requirement: &id008 !ruby/object:Gem::Requirement
118
+ requirement: &id007 !ruby/object:Gem::Requirement
133
119
  none: false
134
120
  requirements:
135
121
  - - ">="
@@ -139,7 +125,7 @@ dependencies:
139
125
  - 0
140
126
  version: "0"
141
127
  type: :runtime
142
- version_requirements: *id008
128
+ version_requirements: *id007
143
129
  description: ActiveValidators is a collection of ActiveModel/ActiveRecord validations
144
130
  email:
145
131
  - franck@verrot.fr