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
|
data/smarter_dates.gemspec
CHANGED
@@ -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.
|
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-
|
12
|
+
date: 2013-03-18 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chronic
|
16
|
-
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: *
|
24
|
+
version_requirements: *2277388640
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
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: *
|
35
|
+
version_requirements: *2277388160
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
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: *
|
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
|