date_validator 0.6.3 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ad328bfcd91fe2dd14dffada0d846bbc8098de12
4
+ data.tar.gz: ca2397f4635d7f6ca4fc7e13430de2138ac1df41
5
+ SHA512:
6
+ metadata.gz: 5dbb18aba6310ee0846aeec876f46b98d53b1ee96a75037e2f285055e1948647e74a5c5bb1f60af11d75ad08d8690948634f6f25506a7b97b7d21ddb43bf6f41
7
+ data.tar.gz: 46a423f1e6dd42f08e5fadb1d1a42cd440ee308025679e562f316a55f9b873cabec519e1705d90a04efbc0b9734ea8ae8a0a9a8635a9b60d9fedb1500acd0d9d
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use ruby-1.9.2@date_validator --create
1
+ rvm use ruby-2.0.0@date_validator --create
@@ -1,8 +1,8 @@
1
1
  # http://about.travis-ci.org/docs/user/build-configuration/
2
+ langauge: ruby
2
3
  rvm:
3
- - 1.8.7
4
4
  - 1.9.2
5
- - ree
6
- - ruby-head
7
- - rbx
8
- - rbx-2.0
5
+ - 1.9.3
6
+ - 2.0.0
7
+ - rbx-19mode
8
+ - jruby-19mode
@@ -14,12 +14,12 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "date_validator"
16
16
 
17
- s.add_runtime_dependency 'activemodel', ['~> 3.0']
17
+ s.add_runtime_dependency 'activemodel', '>= 3'
18
18
 
19
19
  s.add_development_dependency 'minitest'
20
20
  s.add_development_dependency 'rake'
21
- s.add_development_dependency 'activesupport', ['~> 3.0']
22
- s.add_development_dependency 'tzinfo', '~> 0.3.0'
21
+ s.add_development_dependency 'activesupport'
22
+ s.add_development_dependency 'tzinfo'
23
23
 
24
24
  s.files = `git ls-files`.split("\n")
25
25
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -33,10 +33,33 @@ module ActiveModel
33
33
  end
34
34
  end
35
35
 
36
+ # Overridden because standard allow_nil and allow_blank checks don't work with
37
+ # string expressions that cannot be type cast to dates. We have to validate
38
+ # the pre-type cast values.
39
+ def validate(record)
40
+ attributes.each do |attribute|
41
+ value = record.read_attribute_for_validation(attribute)
42
+ validate_each(record, attribute, value)
43
+ end
44
+ end
45
+
36
46
  # The actual validator method. It is called when ActiveRecord iterates
37
47
  # over all the validators.
38
48
  def validate_each(record, attr_name, value)
39
- return if options[:allow_nil] && value.nil?
49
+ before_type_cast = :"#{attr_name}_before_type_cast"
50
+
51
+ value_before_type_cast = if record.respond_to?(before_type_cast)
52
+ record.send(before_type_cast)
53
+ else
54
+ nil
55
+ end
56
+
57
+ if value_before_type_cast.present? && value.nil?
58
+ record.errors.add(attr_name, :not_a_date, options)
59
+ return
60
+ end
61
+
62
+ return if (value.nil? && options[:allow_nil]) || (value.blank? && options[:allow_blank])
40
63
 
41
64
  unless value
42
65
  record.errors.add(attr_name, :not_a_date, options)
@@ -1,4 +1,4 @@
1
1
  module DateValidator
2
2
  # The version number.
3
- VERSION = "0.6.3"
3
+ VERSION = "0.6.4"
4
4
  end
@@ -0,0 +1,8 @@
1
+ de:
2
+ errors:
3
+ messages:
4
+ not_a_date: "ist kein Datum"
5
+ after: "muss nach %{date} sein"
6
+ after_or_equal_to: "muss nach oder gleich %{date} sein"
7
+ before: "muss vor %{date} sein"
8
+ before_or_equal_to: "muss vor oder gleich %{date} sein"
@@ -0,0 +1,11 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ fr:
5
+ errors:
6
+ messages:
7
+ not_a_date: "n'est pas une date"
8
+ after: "doit être après %{date}"
9
+ after_or_equal_to: "doit être supérieur ou égal à %{date}"
10
+ before: "doit être avant %{date}"
11
+ before_or_equal_to: "doit être inférieur ou égal à %{date}"
@@ -131,6 +131,22 @@ module ActiveModel
131
131
 
132
132
  TestRecord.new(Time.now).valid?.must_equal false
133
133
  end
134
+
135
+ describe "with type cast attributes" do
136
+ before do
137
+ TestRecord.send(:define_method, :expiration_date_before_type_cast, lambda { 'last year' })
138
+ end
139
+
140
+ it "should detect invalid date expressions when nil is allowed" do
141
+ TestRecord.validates(:expiration_date, :date => true, :allow_nil => true)
142
+ TestRecord.new(nil).valid?.must_equal false
143
+ end
144
+
145
+ it "should detect invalid date expressions when blank is allowed" do
146
+ TestRecord.validates(:expiration_date, :date => true, :allow_blank => true)
147
+ TestRecord.new(nil).valid?.must_equal false
148
+ end
149
+ end
134
150
  end
135
151
 
136
152
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: date_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
5
- prerelease:
4
+ version: 0.6.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Oriol Gual
@@ -11,63 +10,78 @@ authors:
11
10
  autorequire:
12
11
  bindir: bin
13
12
  cert_chain: []
14
- date: 2012-01-22 00:00:00.000000000Z
13
+ date: 2013-03-29 00:00:00.000000000 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: activemodel
18
- requirement: &70140810524120 !ruby/object:Gem::Requirement
19
- none: false
17
+ requirement: !ruby/object:Gem::Requirement
20
18
  requirements:
21
- - - ~>
19
+ - - '>='
22
20
  - !ruby/object:Gem::Version
23
- version: '3.0'
21
+ version: '3'
24
22
  type: :runtime
25
23
  prerelease: false
26
- version_requirements: *70140810524120
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - '>='
27
+ - !ruby/object:Gem::Version
28
+ version: '3'
27
29
  - !ruby/object:Gem::Dependency
28
30
  name: minitest
29
- requirement: &70140810523700 !ruby/object:Gem::Requirement
30
- none: false
31
+ requirement: !ruby/object:Gem::Requirement
31
32
  requirements:
32
- - - ! '>='
33
+ - - '>='
33
34
  - !ruby/object:Gem::Version
34
35
  version: '0'
35
36
  type: :development
36
37
  prerelease: false
37
- version_requirements: *70140810523700
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '>='
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
38
43
  - !ruby/object:Gem::Dependency
39
44
  name: rake
40
- requirement: &70140810523240 !ruby/object:Gem::Requirement
41
- none: false
45
+ requirement: !ruby/object:Gem::Requirement
42
46
  requirements:
43
- - - ! '>='
47
+ - - '>='
44
48
  - !ruby/object:Gem::Version
45
49
  version: '0'
46
50
  type: :development
47
51
  prerelease: false
48
- version_requirements: *70140810523240
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
49
57
  - !ruby/object:Gem::Dependency
50
58
  name: activesupport
51
- requirement: &70140810522720 !ruby/object:Gem::Requirement
52
- none: false
59
+ requirement: !ruby/object:Gem::Requirement
53
60
  requirements:
54
- - - ~>
61
+ - - '>='
55
62
  - !ruby/object:Gem::Version
56
- version: '3.0'
63
+ version: '0'
57
64
  type: :development
58
65
  prerelease: false
59
- version_requirements: *70140810522720
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
60
71
  - !ruby/object:Gem::Dependency
61
72
  name: tzinfo
62
- requirement: &70140810522220 !ruby/object:Gem::Requirement
63
- none: false
73
+ requirement: !ruby/object:Gem::Requirement
64
74
  requirements:
65
- - - ~>
75
+ - - '>='
66
76
  - !ruby/object:Gem::Version
67
- version: 0.3.0
77
+ version: '0'
68
78
  type: :development
69
79
  prerelease: false
70
- version_requirements: *70140810522220
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
71
85
  description: A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails
72
86
  3, based on ActiveModel. Currently supporting :after, :before, :after_or_equal_to
73
87
  and :before_or_equal_to options.
@@ -92,35 +106,36 @@ files:
92
106
  - lib/date_validator.rb
93
107
  - lib/date_validator/version.rb
94
108
  - locales/ca.yml
109
+ - locales/de.yml
95
110
  - locales/en.yml
96
111
  - locales/es.yml
112
+ - locales/fr.yml
97
113
  - locales/nl.yml
98
114
  - locales/ru.yml
99
115
  - test/date_validator_test.rb
100
116
  - test/test_helper.rb
101
117
  homepage: http://github.com/codegram/date_validator
102
118
  licenses: []
119
+ metadata: {}
103
120
  post_install_message:
104
121
  rdoc_options: []
105
122
  require_paths:
106
123
  - lib
107
124
  required_ruby_version: !ruby/object:Gem::Requirement
108
- none: false
109
125
  requirements:
110
- - - ! '>='
126
+ - - '>='
111
127
  - !ruby/object:Gem::Version
112
128
  version: '0'
113
129
  required_rubygems_version: !ruby/object:Gem::Requirement
114
- none: false
115
130
  requirements:
116
- - - ! '>='
131
+ - - '>='
117
132
  - !ruby/object:Gem::Version
118
133
  version: '0'
119
134
  requirements: []
120
135
  rubyforge_project: date_validator
121
- rubygems_version: 1.8.10
136
+ rubygems_version: 2.0.0
122
137
  signing_key:
123
- specification_version: 3
138
+ specification_version: 4
124
139
  summary: A simple, ORM agnostic, Ruby 1.9 compatible date validator for Rails 3, based
125
140
  on ActiveModel.
126
141
  test_files: