smarter_dates 0.2.8 → 0.2.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+ module SmarterDates
2
+ class InstallGenerator < Rails::Generators::Base
3
+ source_root File.expand_path('../templates', __FILE__)
4
+
5
+ desc 'creates initialization files'
6
+
7
+ def generate_configuration_files
8
+ copy_file 'features/smarter_dates.rb', 'config/features/smarter_dates.rb'
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,4 @@
1
+ Configuration.for('smarter_dates') do
2
+ enabled true
3
+ end
4
+
@@ -1,4 +1,4 @@
1
1
  module SmarterDates
2
- VERSION = '0.2.8'
2
+ VERSION = '0.2.9'
3
3
  end
4
4
 
@@ -26,6 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency 'chronic', ['>= 0']
27
27
  spec.add_development_dependency 'bundler', ['~> 1.3']
28
28
  spec.add_development_dependency 'rake', ['>= 0']
29
+ spec.add_development_dependency 'rails', ['>= 3.0']
30
+ spec.add_development_dependency 'sqlite3', ['~> 1.3.5']
29
31
  else
30
32
  spec.add_dependency('chronic')
31
33
  end
@@ -0,0 +1,48 @@
1
+ require 'test/unit'
2
+ require 'rails'
3
+ require 'active_record'
4
+
5
+ if $LOAD_PATH.include?(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
6
+ require 'smarter_dates'
7
+ else
8
+ raise RuntimeError, "Try ruby -Ilib test/#{File.basename(__FILE__)}"
9
+ end
10
+
11
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
12
+
13
+ ActiveRecord::Schema.define(:version => 1) do
14
+ create_table :models do |t|
15
+ t.string :name
16
+ t.datetime :created_on
17
+ end
18
+ end
19
+
20
+ class Model < ActiveRecord::Base
21
+ include SmarterDates
22
+ attr_accessible :name, :created_on
23
+ validates :created_on, :chronic_parsable => true
24
+ end
25
+
26
+ class ChronicParsableValidatorTest < Test::Unit::TestCase
27
+ def setup
28
+ @model = Model.new
29
+ end
30
+
31
+ def test_parsing_validation
32
+ @model.name = 'Paul Belt'
33
+ valid_dates = ['22 April 1976', 'today', 'one week ago', 'yesterday']
34
+ valid_dates.each do |date|
35
+ @model.created_on = date
36
+ assert @model.valid?
37
+ @model.save
38
+ assert @model.persisted?
39
+ end
40
+ invalid_dates = ['safdsafds', '55 April 1976', '$%$@#$@', '', nil]
41
+ invalid_dates.each do |date|
42
+ @model.created_on = date
43
+ assert !@model.valid?
44
+ assert_match('not a valid Date or DateTime', @model.errors[:created_on][0])
45
+ end
46
+ end
47
+ end
48
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smarter_dates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.8
4
+ version: 0.2.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-11 00:00:00.000000000Z
12
+ date: 2013-03-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chronic
16
- requirement: &2267243440 !ruby/object:Gem::Requirement
16
+ requirement: &2277388640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2267243440
24
+ version_requirements: *2277388640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &2267242960 !ruby/object:Gem::Requirement
27
+ requirement: &2277388160 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2267242960
35
+ version_requirements: *2277388160
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &2267242480 !ruby/object:Gem::Requirement
38
+ requirement: &2277387680 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,29 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2267242480
46
+ version_requirements: *2277387680
47
+ - !ruby/object:Gem::Dependency
48
+ name: rails
49
+ requirement: &2277387200 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2277387200
58
+ - !ruby/object:Gem::Dependency
59
+ name: sqlite3
60
+ requirement: &2277386720 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 1.3.5
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2277386720
47
69
  description: Humans want to think of date and datetime attributes in a natural manner.
48
70
  Standard ruby Date and DateTime objects do not support this well.
49
71
  email:
@@ -58,11 +80,14 @@ files:
58
80
  - README.rdoc
59
81
  - Rakefile
60
82
  - VERSION.yml
83
+ - lib/generators/smarter_dates/install_generator.rb
84
+ - lib/generators/smarter_dates/templates/features/smarter_dates.rb
61
85
  - lib/smarter_dates.rb
62
86
  - lib/smarter_dates/chronic_parsable_validator.rb
63
87
  - lib/smarter_dates/parser.rb
64
88
  - lib/smarter_dates/version.rb
65
89
  - smarter_dates.gemspec
90
+ - test/chronic_parsable_validator_test.rb
66
91
  - test/smarter_dates_test.rb
67
92
  homepage: http://github.com/belt/smarter_dates
68
93
  licenses: []
@@ -89,4 +114,5 @@ signing_key:
89
114
  specification_version: 3
90
115
  summary: Natural language date processing
91
116
  test_files:
117
+ - test/chronic_parsable_validator_test.rb
92
118
  - test/smarter_dates_test.rb