activevalidators 1.7.1 → 1.8.0

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