smarter_dates 0.2.8 → 0.2.9

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.
@@ -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