smarter_dates 0.2.9 → 0.2.13

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.
Files changed (45) hide show
  1. data/.rspec +2 -0
  2. data/Gemfile +12 -1
  3. data/config/locales/en.yml +32 -0
  4. data/lib/generators/smarter_dates/install_generator.rb +2 -0
  5. data/lib/smarter_dates.rb +6 -1
  6. data/lib/smarter_dates/chronic_parsable_validator.rb +2 -6
  7. data/lib/smarter_dates/chronic_strings.rb +63 -0
  8. data/lib/smarter_dates/engine.rb +5 -0
  9. data/lib/smarter_dates/parser.rb +93 -34
  10. data/lib/smarter_dates/version.rb +1 -1
  11. data/smarter_dates.gemspec +38 -16
  12. data/spec/dummy/.gitignore +2 -0
  13. data/spec/dummy/.rspec +1 -0
  14. data/spec/dummy/README.rdoc +261 -0
  15. data/spec/dummy/Rakefile +7 -0
  16. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  17. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  18. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  19. data/spec/dummy/app/models/.gitkeep +0 -0
  20. data/spec/dummy/config.ru +4 -0
  21. data/spec/dummy/config/application.rb +64 -0
  22. data/spec/dummy/config/boot.rb +10 -0
  23. data/spec/dummy/config/database.yml +20 -0
  24. data/spec/dummy/config/environment.rb +5 -0
  25. data/spec/dummy/config/environments/development.rb +37 -0
  26. data/spec/dummy/config/environments/test.rb +37 -0
  27. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  28. data/spec/dummy/config/initializers/inflections.rb +15 -0
  29. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  30. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  31. data/spec/dummy/config/initializers/session_store.rb +8 -0
  32. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  33. data/spec/dummy/config/locales/en.yml +5 -0
  34. data/spec/dummy/config/routes.rb +3 -0
  35. data/spec/dummy/db/migrate/1_create_activities.rb +10 -0
  36. data/spec/dummy/db/schema.rb +23 -0
  37. data/spec/dummy/log/.gitkeep +0 -0
  38. data/spec/dummy/script/rails +6 -0
  39. data/spec/dummy/spec/support/.gitkeep +0 -0
  40. data/spec/models/smarter_dates/activity_spec.rb +71 -0
  41. data/spec/spec.opts +5 -0
  42. data/spec/spec_helper.rb +17 -0
  43. data/test/chronic_parsable_validator_test.rb +5 -7
  44. data/test/smarter_dates_test.rb +2 -2
  45. metadata +215 -23
@@ -0,0 +1,17 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV['RAILS_ENV'] ||= 'test'
3
+ require File.expand_path('../dummy/config/environment', __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
10
+
11
+ RSpec.configure do |config|
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+ end
@@ -8,19 +8,19 @@ else
8
8
  raise RuntimeError, "Try ruby -Ilib test/#{File.basename(__FILE__)}"
9
9
  end
10
10
 
11
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
11
+ ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
12
12
 
13
- ActiveRecord::Schema.define(:version => 1) do
13
+ ActiveRecord::Schema.define(version: 1) do
14
14
  create_table :models do |t|
15
15
  t.string :name
16
- t.datetime :created_on
16
+ t.date :created_on
17
17
  end
18
18
  end
19
19
 
20
20
  class Model < ActiveRecord::Base
21
21
  include SmarterDates
22
22
  attr_accessible :name, :created_on
23
- validates :created_on, :chronic_parsable => true
23
+ validates :created_on, chronic_parsable: true
24
24
  end
25
25
 
26
26
  class ChronicParsableValidatorTest < Test::Unit::TestCase
@@ -34,10 +34,8 @@ class ChronicParsableValidatorTest < Test::Unit::TestCase
34
34
  valid_dates.each do |date|
35
35
  @model.created_on = date
36
36
  assert @model.valid?
37
- @model.save
38
- assert @model.persisted?
39
37
  end
40
- invalid_dates = ['safdsafds', '55 April 1976', '$%$@#$@', '', nil]
38
+ invalid_dates = ['safdsafds', '55 April 1976', '$%$@#$@', "", nil]
41
39
  invalid_dates.each do |date|
42
40
  @model.created_on = date
43
41
  assert !@model.valid?
@@ -61,8 +61,8 @@ class SmarterDatesTest < Test::Unit::TestCase
61
61
 
62
62
  # TODO: fix this in chronic
63
63
  if false
64
- @model.birth_d = '30 Feb 1976'
65
- assert_equal nil, @model.birth_d
64
+ @model.birth_d = '30 Feb 1976'
65
+ assert_equal nil, @model.birth_d
66
66
  end
67
67
  end
68
68
  end
metadata CHANGED
@@ -1,71 +1,192 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smarter_dates
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.9
5
4
  prerelease:
5
+ version: 0.2.13
6
6
  platform: ruby
7
7
  authors:
8
8
  - Paul Belt
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-18 00:00:00.000000000Z
12
+ date: 2013-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chronic
16
- requirement: &2277388640 !ruby/object:Gem::Requirement
16
+ version_requirements: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
17
21
  none: false
22
+ requirement: !ruby/object:Gem::Requirement
18
23
  requirements:
19
24
  - - ! '>='
20
25
  - !ruby/object:Gem::Version
21
26
  version: '0'
22
- type: :runtime
27
+ none: false
23
28
  prerelease: false
24
- version_requirements: *2277388640
29
+ type: :runtime
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &2277388160 !ruby/object:Gem::Requirement
32
+ version_requirements: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ~>
35
+ - !ruby/object:Gem::Version
36
+ version: '1.3'
28
37
  none: false
38
+ requirement: !ruby/object:Gem::Requirement
29
39
  requirements:
30
40
  - - ~>
31
41
  - !ruby/object:Gem::Version
32
42
  version: '1.3'
33
- type: :development
43
+ none: false
34
44
  prerelease: false
35
- version_requirements: *2277388160
45
+ type: :development
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rake
38
- requirement: &2277387680 !ruby/object:Gem::Requirement
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
39
53
  none: false
54
+ requirement: !ruby/object:Gem::Requirement
40
55
  requirements:
41
56
  - - ! '>='
42
57
  - !ruby/object:Gem::Version
43
58
  version: '0'
59
+ none: false
60
+ prerelease: false
44
61
  type: :development
62
+ - !ruby/object:Gem::Dependency
63
+ name: sqlite3
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.7
69
+ none: false
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: 1.3.7
75
+ none: false
45
76
  prerelease: false
46
- version_requirements: *2277387680
77
+ type: :development
47
78
  - !ruby/object:Gem::Dependency
48
- name: rails
49
- requirement: &2277387200 !ruby/object:Gem::Requirement
79
+ name: debugger
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: 1.5.0
50
85
  none: false
86
+ requirement: !ruby/object:Gem::Requirement
51
87
  requirements:
52
88
  - - ! '>='
53
89
  - !ruby/object:Gem::Version
54
- version: '3.0'
90
+ version: 1.5.0
91
+ none: false
92
+ prerelease: false
55
93
  type: :development
94
+ - !ruby/object:Gem::Dependency
95
+ name: rspec
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: 2.13.0
101
+ none: false
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: 2.13.0
107
+ none: false
56
108
  prerelease: false
57
- version_requirements: *2277387200
109
+ type: :development
58
110
  - !ruby/object:Gem::Dependency
59
- name: sqlite3
60
- requirement: &2277386720 !ruby/object:Gem::Requirement
111
+ name: mocha
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: 0.13.0
61
117
  none: false
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ! '>='
121
+ - !ruby/object:Gem::Version
122
+ version: 0.13.0
123
+ none: false
124
+ prerelease: false
125
+ type: :development
126
+ - !ruby/object:Gem::Dependency
127
+ name: database_cleaner
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: 0.9.1
133
+ none: false
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ! '>='
137
+ - !ruby/object:Gem::Version
138
+ version: 0.9.1
139
+ none: false
140
+ prerelease: false
141
+ type: :development
142
+ - !ruby/object:Gem::Dependency
143
+ name: machinist
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ! '>='
147
+ - !ruby/object:Gem::Version
148
+ version: 2.0.0
149
+ none: false
150
+ requirement: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: 2.0.0
155
+ none: false
156
+ prerelease: false
157
+ type: :development
158
+ - !ruby/object:Gem::Dependency
159
+ name: activerecord
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ~>
163
+ - !ruby/object:Gem::Version
164
+ version: 3.2.13
165
+ none: false
166
+ requirement: !ruby/object:Gem::Requirement
62
167
  requirements:
63
168
  - - ~>
64
169
  - !ruby/object:Gem::Version
65
- version: 1.3.5
170
+ version: 3.2.13
171
+ none: false
172
+ prerelease: false
66
173
  type: :development
174
+ - !ruby/object:Gem::Dependency
175
+ name: rspec-rails
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ! '>='
179
+ - !ruby/object:Gem::Version
180
+ version: 2.12.0
181
+ none: false
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: 2.12.0
187
+ none: false
67
188
  prerelease: false
68
- version_requirements: *2277386720
189
+ type: :development
69
190
  description: Humans want to think of date and datetime attributes in a natural manner.
70
191
  Standard ruby Date and DateTime objects do not support this well.
71
192
  email:
@@ -75,44 +196,115 @@ extensions: []
75
196
  extra_rdoc_files: []
76
197
  files:
77
198
  - .gitignore
199
+ - .rspec
78
200
  - Gemfile
79
201
  - LICENSE
80
202
  - README.rdoc
81
203
  - Rakefile
82
204
  - VERSION.yml
205
+ - config/locales/en.yml
83
206
  - lib/generators/smarter_dates/install_generator.rb
84
207
  - lib/generators/smarter_dates/templates/features/smarter_dates.rb
85
208
  - lib/smarter_dates.rb
86
209
  - lib/smarter_dates/chronic_parsable_validator.rb
210
+ - lib/smarter_dates/chronic_strings.rb
211
+ - lib/smarter_dates/engine.rb
87
212
  - lib/smarter_dates/parser.rb
88
213
  - lib/smarter_dates/version.rb
89
214
  - smarter_dates.gemspec
215
+ - spec/dummy/.gitignore
216
+ - spec/dummy/.rspec
217
+ - spec/dummy/README.rdoc
218
+ - spec/dummy/Rakefile
219
+ - spec/dummy/app/assets/javascripts/application.js
220
+ - spec/dummy/app/assets/stylesheets/application.css
221
+ - spec/dummy/app/controllers/application_controller.rb
222
+ - spec/dummy/app/models/.gitkeep
223
+ - spec/dummy/config.ru
224
+ - spec/dummy/config/application.rb
225
+ - spec/dummy/config/boot.rb
226
+ - spec/dummy/config/database.yml
227
+ - spec/dummy/config/environment.rb
228
+ - spec/dummy/config/environments/development.rb
229
+ - spec/dummy/config/environments/test.rb
230
+ - spec/dummy/config/initializers/backtrace_silencers.rb
231
+ - spec/dummy/config/initializers/inflections.rb
232
+ - spec/dummy/config/initializers/mime_types.rb
233
+ - spec/dummy/config/initializers/secret_token.rb
234
+ - spec/dummy/config/initializers/session_store.rb
235
+ - spec/dummy/config/initializers/wrap_parameters.rb
236
+ - spec/dummy/config/locales/en.yml
237
+ - spec/dummy/config/routes.rb
238
+ - spec/dummy/db/development.sqlite3
239
+ - spec/dummy/db/migrate/1_create_activities.rb
240
+ - spec/dummy/db/schema.rb
241
+ - spec/dummy/db/test.sqlite3
242
+ - spec/dummy/log/.gitkeep
243
+ - spec/dummy/script/rails
244
+ - spec/dummy/spec/support/.gitkeep
245
+ - spec/models/smarter_dates/activity_spec.rb
246
+ - spec/spec.opts
247
+ - spec/spec_helper.rb
90
248
  - test/chronic_parsable_validator_test.rb
91
249
  - test/smarter_dates_test.rb
92
250
  homepage: http://github.com/belt/smarter_dates
93
- licenses: []
251
+ licenses:
252
+ - MIT
94
253
  post_install_message:
95
254
  rdoc_options: []
96
255
  require_paths:
97
256
  - lib
98
257
  required_ruby_version: !ruby/object:Gem::Requirement
99
- none: false
100
258
  requirements:
101
259
  - - ! '>='
102
260
  - !ruby/object:Gem::Version
103
- version: 1.8.7
104
- required_rubygems_version: !ruby/object:Gem::Requirement
261
+ version: 1.9.2
105
262
  none: false
263
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
264
  requirements:
107
265
  - - ! '>='
108
266
  - !ruby/object:Gem::Version
109
267
  version: '0'
268
+ none: false
110
269
  requirements: []
111
270
  rubyforge_project: smarter_dates
112
- rubygems_version: 1.8.10
271
+ rubygems_version: 1.8.25
113
272
  signing_key:
114
273
  specification_version: 3
115
274
  summary: Natural language date processing
116
275
  test_files:
276
+ - spec/dummy/.gitignore
277
+ - spec/dummy/.rspec
278
+ - spec/dummy/README.rdoc
279
+ - spec/dummy/Rakefile
280
+ - spec/dummy/app/assets/javascripts/application.js
281
+ - spec/dummy/app/assets/stylesheets/application.css
282
+ - spec/dummy/app/controllers/application_controller.rb
283
+ - spec/dummy/app/models/.gitkeep
284
+ - spec/dummy/config.ru
285
+ - spec/dummy/config/application.rb
286
+ - spec/dummy/config/boot.rb
287
+ - spec/dummy/config/database.yml
288
+ - spec/dummy/config/environment.rb
289
+ - spec/dummy/config/environments/development.rb
290
+ - spec/dummy/config/environments/test.rb
291
+ - spec/dummy/config/initializers/backtrace_silencers.rb
292
+ - spec/dummy/config/initializers/inflections.rb
293
+ - spec/dummy/config/initializers/mime_types.rb
294
+ - spec/dummy/config/initializers/secret_token.rb
295
+ - spec/dummy/config/initializers/session_store.rb
296
+ - spec/dummy/config/initializers/wrap_parameters.rb
297
+ - spec/dummy/config/locales/en.yml
298
+ - spec/dummy/config/routes.rb
299
+ - spec/dummy/db/development.sqlite3
300
+ - spec/dummy/db/migrate/1_create_activities.rb
301
+ - spec/dummy/db/schema.rb
302
+ - spec/dummy/db/test.sqlite3
303
+ - spec/dummy/log/.gitkeep
304
+ - spec/dummy/script/rails
305
+ - spec/dummy/spec/support/.gitkeep
306
+ - spec/models/smarter_dates/activity_spec.rb
307
+ - spec/spec.opts
308
+ - spec/spec_helper.rb
117
309
  - test/chronic_parsable_validator_test.rb
118
310
  - test/smarter_dates_test.rb