date_validator 0.4.3 → 0.5.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/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --format documentation
data/Rakefile CHANGED
@@ -11,30 +11,27 @@ begin
11
11
  gem.homepage = "http://github.com/codegram/date_validator"
12
12
  gem.authors = ["Oriol Gual", "Josep Mª Bach", "Josep Jaume Rey"]
13
13
 
14
- gem.add_dependency 'activemodel', '>= 3.0.0.beta3'
14
+ gem.add_dependency 'activemodel', '>= 3.0.0.beta4'
15
15
 
16
- gem.add_development_dependency "rspec"
17
-
18
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
+ gem.add_development_dependency "rspec", '>= 2.0.0.beta.12'
17
+ gem.add_development_dependency "activesupport", '>= 3.0.0.beta4'
19
18
  end
20
19
  Jeweler::GemcutterTasks.new
21
20
  rescue LoadError
22
21
  puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
23
22
  end
24
23
 
25
- require 'spec/rake/spectask'
26
- Spec::Rake::SpecTask.new(:spec) do |spec|
27
- spec.libs << 'lib' << 'spec'
28
- spec.spec_files = FileList['spec/**/*_spec.rb']
29
- end
30
24
 
31
- Spec::Rake::SpecTask.new(:rcov) do |spec|
32
- spec.libs << 'lib' << 'spec'
33
- spec.pattern = 'spec/**/*_spec.rb'
34
- spec.rcov = true
35
- end
25
+ # Rake RSpec2 task stuff
26
+ gem 'rspec', '>= 2.0.0.beta.12'
27
+ gem 'rspec-expectations'
36
28
 
37
- task :spec => :check_dependencies
29
+ require 'rspec/core/rake_task'
30
+
31
+ desc "Run the specs under spec"
32
+ RSpec::Core::RakeTask.new do |t|
33
+
34
+ end
38
35
 
39
36
  task :default => :spec
40
37
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.3
1
+ 0.5.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{date_validator}
8
- s.version = "0.4.3"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Oriol Gual", "Josep M\302\252 Bach", "Josep Jaume Rey"]
12
- s.date = %q{2010-06-08}
12
+ s.date = %q{2010-06-16}
13
13
  s.description = %q{A simple date validator for Rails 3. Currently supporting :after, :before, :after_or_equal_to and :before_or_equal_to options. Remarkable-friendly :)}
14
14
  s.email = %q{info@codegram.com}
15
15
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".gitignore",
22
+ ".rspec",
22
23
  "LICENSE",
23
24
  "README.rdoc",
24
25
  "Rakefile",
@@ -27,13 +28,12 @@ Gem::Specification.new do |s|
27
28
  "lib/date_validator.rb",
28
29
  "locales/en.yml",
29
30
  "spec/date_validator_spec.rb",
30
- "spec/spec.opts",
31
31
  "spec/spec_helper.rb"
32
32
  ]
33
33
  s.homepage = %q{http://github.com/codegram/date_validator}
34
34
  s.rdoc_options = ["--charset=UTF-8"]
35
35
  s.require_paths = ["lib"]
36
- s.rubygems_version = %q{1.3.6}
36
+ s.rubygems_version = %q{1.3.7}
37
37
  s.summary = %q{A simple date validator for Rails 3.}
38
38
  s.test_files = [
39
39
  "spec/date_validator_spec.rb",
@@ -44,16 +44,19 @@ Gem::Specification.new do |s|
44
44
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
45
45
  s.specification_version = 3
46
46
 
47
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
48
- s.add_runtime_dependency(%q<activemodel>, [">= 3.0.0.beta3"])
49
- s.add_development_dependency(%q<rspec>, [">= 0"])
47
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<activemodel>, [">= 3.0.0.beta4"])
49
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta.12"])
50
+ s.add_development_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
50
51
  else
51
- s.add_dependency(%q<activemodel>, [">= 3.0.0.beta3"])
52
- s.add_dependency(%q<rspec>, [">= 0"])
52
+ s.add_dependency(%q<activemodel>, [">= 3.0.0.beta4"])
53
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.12"])
54
+ s.add_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
53
55
  end
54
56
  else
55
- s.add_dependency(%q<activemodel>, [">= 3.0.0.beta3"])
56
- s.add_dependency(%q<rspec>, [">= 0"])
57
+ s.add_dependency(%q<activemodel>, [">= 3.0.0.beta4"])
58
+ s.add_dependency(%q<rspec>, [">= 2.0.0.beta.12"])
59
+ s.add_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
57
60
  end
58
61
  end
59
62
 
@@ -11,8 +11,8 @@ module ActiveModel
11
11
  def check_validity!
12
12
  keys = CHECKS.keys
13
13
  options.slice(*keys).each do |option, value|
14
- next if is_time?(value) || value.is_a?(Proc) || value.is_a?(Symbol)
15
- raise ArgumentError, ":#{option} must be a time, a date, a symbol or a proc"
14
+ next if is_time?(value) || value.is_a?(Proc) || value.is_a?(Symbol) || (defined?(ActiveSupport::TimeWithZone) and value.is_a? ActiveSupport::TimeWithZone)
15
+ raise ArgumentError, ":#{option} must be a time, a date, a time_with_zone, a symbol or a proc"
16
16
  end
17
17
  end
18
18
 
@@ -1,5 +1,7 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
2
 
3
+ require 'active_support/time' # For testing Date and TimeWithZone objects
4
+
3
5
  describe "DateValidator" do
4
6
 
5
7
  before(:each) do
@@ -8,23 +10,22 @@ describe "DateValidator" do
8
10
 
9
11
  it "should check validity of the arguments" do
10
12
  [3, "foo", 1..6].each do |wrong_argument|
11
- begin
13
+ expect {
12
14
  TestRecord.validates :expiration_date, :date => {:before => wrong_argument}
13
- fail "should not accept a #{wrong_argument.class} as an option (only Time, Date, Symbol or Proc)"
14
- rescue=>e
15
- fail e unless e.is_a?(ArgumentError)
16
- end
15
+ }.to raise_error(ArgumentError, ":before must be a time, a date, a time_with_zone, a symbol or a proc")
17
16
  end
18
17
  end
19
18
 
20
19
  [:after, :before, :after_or_equal_to, :before_or_equal_to].each do |check|
21
20
  [:valid,:invalid].each do |should_be|
22
21
 
22
+ now = Time.now.to_datetime
23
+
23
24
  model_date = case check
24
- when :after then should_be == :valid ? Time.now + 21000 : Time.now - 1
25
- when :before then should_be == :valid ? Time.now - 21000 : Time.now + 1
26
- when :after_or_equal_to then should_be == :valid ? Time.now + 21000 : Time.now - 21000
27
- when :before_or_equal_to then should_be == :valid ? Time.now - 21000 : Time.now + 21000
25
+ when :after then should_be == :valid ? now + 21000 : now - 1
26
+ when :before then should_be == :valid ? now - 21000 : now + 1
27
+ when :after_or_equal_to then should_be == :valid ? now : now - 21000
28
+ when :before_or_equal_to then should_be == :valid ? now : now + 21000
28
29
  end
29
30
 
30
31
  it "should ensure that an attribute is #{should_be} when #{should_be == :valid ? 'respecting' : 'offending' } the #{check} check" do
@@ -37,34 +38,42 @@ describe "DateValidator" do
37
38
  end
38
39
 
39
40
  extra_types = [:proc, :symbol]
40
- # extra_types.push(:date) if defined?(Date) and defined?(DateTime)
41
+ extra_types.push(:date) if defined?(Date) and defined?(DateTime)
42
+ extra_types.push(:time_with_zone) if defined?(ActiveSupport::TimeWithZone)
41
43
 
42
44
  extra_types.each do |type|
43
45
  it "should accept a #{type} as an argument to a check" do
44
46
  case type
45
47
  when :proc then
46
- TestRecord.validates :expiration_date, :date => {:after => Proc.new{Time.now + 21000}}
48
+ expect {
49
+ TestRecord.validates :expiration_date, :date => {:after => Proc.new{Time.now + 21000}}
50
+ }.to_not raise_error
47
51
  when :symbol then
48
- begin
52
+ expect {
49
53
  TestRecord.send(:define_method, :min_date, lambda { Time.now + 21000 })
50
54
  TestRecord.validates :expiration_date, :date => {:after => :min_date}
51
- rescue=>e
52
- fail "is not accepting a #{type} as an argument to a check"
53
- end
54
- # when :date then
55
- # TestRecord.validates :expiration_date, :date => {:after => Time.now.to_date}
55
+ }.to_not raise_error
56
+ when :date then
57
+ expect {
58
+ TestRecord.validates :expiration_date, :date => {:after => Time.now.to_date}
59
+ }.to_not raise_error
60
+ when :time_with_zone then
61
+ expect {
62
+ Time.zone = "Hawaii"
63
+ TestRecord.validates :expiration_date, :date => {:before => Time.zone.parse((Time.now + 21000).to_s)}
64
+ }.to_not raise_error
56
65
  end
57
66
  end
58
67
  end
59
68
 
60
69
  it "should gracefully handle an unexpected result from a proc argument evaluation" do
61
70
  TestRecord.validates :expiration_date, :date => {:after => Proc.new{ nil }}
62
- TestRecord.new(Time.now).valid?.should be_false
71
+ TestRecord.new(Time.now).should_not be_valid
63
72
  end
64
73
 
65
74
  it "should gracefully handle an unexpected result from a symbol argument evaluation" do
66
75
  TestRecord.send(:define_method, :min_date, lambda { nil })
67
76
  TestRecord.validates :expiration_date, :date => {:after => :min_date}
68
- TestRecord.new(Time.now).valid?.should be_false
77
+ TestRecord.new(Time.now).should_not be_valid
69
78
  end
70
79
  end
data/spec/spec_helper.rb CHANGED
@@ -5,9 +5,8 @@ require 'rubygems'
5
5
  require 'active_model'
6
6
 
7
7
  require 'lib/date_validator'
8
- require 'spec'
9
- require 'spec/autorun'
10
-
8
+ require 'rspec'
9
+ require 'rspec/autorun'
11
10
 
12
11
  class TestRecord
13
12
  include ActiveModel::Validations
@@ -17,7 +16,3 @@ class TestRecord
17
16
  @expiration_date = expiration_date
18
17
  end
19
18
  end
20
-
21
- Spec::Runner.configure do |config|
22
-
23
- end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: date_validator
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 11
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 4
8
- - 3
9
- version: 0.4.3
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Oriol Gual
@@ -16,36 +17,61 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2010-06-08 00:00:00 +02:00
20
+ date: 2010-06-16 00:00:00 +02:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
24
  name: activemodel
24
25
  prerelease: false
25
26
  requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
26
28
  requirements:
27
29
  - - ">="
28
30
  - !ruby/object:Gem::Version
31
+ hash: 299253624
29
32
  segments:
30
33
  - 3
31
34
  - 0
32
35
  - 0
33
- - beta3
34
- version: 3.0.0.beta3
36
+ - beta4
37
+ version: 3.0.0.beta4
35
38
  type: :runtime
36
39
  version_requirements: *id001
37
40
  - !ruby/object:Gem::Dependency
38
41
  name: rspec
39
42
  prerelease: false
40
43
  requirement: &id002 !ruby/object:Gem::Requirement
44
+ none: false
41
45
  requirements:
42
46
  - - ">="
43
47
  - !ruby/object:Gem::Version
48
+ hash: 62196475
44
49
  segments:
50
+ - 2
51
+ - 0
45
52
  - 0
46
- version: "0"
53
+ - beta
54
+ - 12
55
+ version: 2.0.0.beta.12
47
56
  type: :development
48
57
  version_requirements: *id002
58
+ - !ruby/object:Gem::Dependency
59
+ name: activesupport
60
+ prerelease: false
61
+ requirement: &id003 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ hash: 299253624
67
+ segments:
68
+ - 3
69
+ - 0
70
+ - 0
71
+ - beta4
72
+ version: 3.0.0.beta4
73
+ type: :development
74
+ version_requirements: *id003
49
75
  description: A simple date validator for Rails 3. Currently supporting :after, :before, :after_or_equal_to and :before_or_equal_to options. Remarkable-friendly :)
50
76
  email: info@codegram.com
51
77
  executables: []
@@ -58,6 +84,7 @@ extra_rdoc_files:
58
84
  files:
59
85
  - .document
60
86
  - .gitignore
87
+ - .rspec
61
88
  - LICENSE
62
89
  - README.rdoc
63
90
  - Rakefile
@@ -66,7 +93,6 @@ files:
66
93
  - lib/date_validator.rb
67
94
  - locales/en.yml
68
95
  - spec/date_validator_spec.rb
69
- - spec/spec.opts
70
96
  - spec/spec_helper.rb
71
97
  has_rdoc: true
72
98
  homepage: http://github.com/codegram/date_validator
@@ -78,23 +104,27 @@ rdoc_options:
78
104
  require_paths:
79
105
  - lib
80
106
  required_ruby_version: !ruby/object:Gem::Requirement
107
+ none: false
81
108
  requirements:
82
109
  - - ">="
83
110
  - !ruby/object:Gem::Version
111
+ hash: 3
84
112
  segments:
85
113
  - 0
86
114
  version: "0"
87
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
+ none: false
88
117
  requirements:
89
118
  - - ">="
90
119
  - !ruby/object:Gem::Version
120
+ hash: 3
91
121
  segments:
92
122
  - 0
93
123
  version: "0"
94
124
  requirements: []
95
125
 
96
126
  rubyforge_project:
97
- rubygems_version: 1.3.6
127
+ rubygems_version: 1.3.7
98
128
  signing_key:
99
129
  specification_version: 3
100
130
  summary: A simple date validator for Rails 3.
data/spec/spec.opts DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --format progress