chronological 1.0.0beta2 → 1.0.0beta3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -227,20 +227,18 @@ these accessors:
227
227
  * `started_on`
228
228
  * `ended_on`
229
229
 
230
- If you want to override these values, simply pass in the
231
- `absolute_start_date_field`, `absolute_end_date_field`,
232
- `absolute_start_time_field` and/or `absolute_end_time_field` options to
233
- `timeframe` like so:
230
+ If you want to override the fields that Chronological creates to access those
231
+ values, simply pass in the option with the name of the field you would like.
234
232
 
235
233
  #### Example
236
234
 
237
235
  ```ruby
238
236
  class MyTimeRangeClass
239
- timeframe :base_of_offset => :event_start_time,
240
- :starting_offset => :starting_availability_offset
241
- :ending_offset => :ending_availability_offset,
242
- :absolute_start_time_field => :starting_time
243
- :absolute_end_time_field => :ending_time
237
+ timeframe :base_of_offset => :event_start_time,
238
+ :starting_offset => :starting_availability_offset
239
+ :ending_offset => :ending_availability_offset,
240
+ :starting_time => :custom_start_field
241
+ :ending_time => :custom_end_field
244
242
  end
245
243
  ```
246
244
 
@@ -1,3 +1,3 @@
1
1
  module Chronological
2
- VERSION = '1.0.0beta2'
2
+ VERSION = '1.0.0beta3'
3
3
  end
data/lib/chronological.rb CHANGED
@@ -9,10 +9,10 @@ module Chronological
9
9
  strategy = Chronological::StrategyResolver.resolve(options)
10
10
 
11
11
  class_eval do
12
- columns_hash[strategy.field_names[:starting_time]] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:starting_time], nil, 'datetime')
13
- columns_hash[strategy.field_names[:ending_time]] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:ending_time], nil, 'datetime')
14
- columns_hash[strategy.field_names[:starting_date]] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:starting_date], nil, 'date')
15
- columns_hash[strategy.field_names[:ending_date]] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:ending_date], nil, 'date')
12
+ columns_hash[strategy.field_names[:starting_time].to_s] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:starting_time], nil, 'datetime')
13
+ columns_hash[strategy.field_names[:ending_time].to_s] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:ending_time], nil, 'datetime')
14
+ columns_hash[strategy.field_names[:starting_date].to_s] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:starting_date], nil, 'date')
15
+ columns_hash[strategy.field_names[:ending_date].to_s] ||= ActiveRecord::ConnectionAdapters::Column.new(strategy.field_names[:ending_date], nil, 'date')
16
16
  end
17
17
 
18
18
  unless strategy.has_absolute_start?
@@ -38,19 +38,19 @@ describe Chronological do
38
38
  it { ChronologicableStrategyClass.should respond_to :active? }
39
39
 
40
40
  it 'tells ActiveRecord that the dynamic starting date field is a datetime' do
41
- ChronologicableStrategyClass.columns_hash[:started_at].type.should eql :datetime
41
+ ChronologicableStrategyClass.columns_hash['started_at'].type.should eql :datetime
42
42
  end
43
43
 
44
44
  it 'tells ActiveRecord that the dynamic ending date field is a datetime' do
45
- ChronologicableStrategyClass.columns_hash[:ended_at].type.should eql :datetime
45
+ ChronologicableStrategyClass.columns_hash['ended_at'].type.should eql :datetime
46
46
  end
47
47
 
48
48
  it 'tells ActiveRecord that the dynamic starting date field is a datetime' do
49
- ChronologicableStrategyClass.columns_hash[:started_on].type.should eql :date
49
+ ChronologicableStrategyClass.columns_hash['started_on'].type.should eql :date
50
50
  end
51
51
 
52
52
  it 'tells ActiveRecord that the dynamic ending date field is a datetime' do
53
- ChronologicableStrategyClass.columns_hash[:ended_on].type.should eql :date
53
+ ChronologicableStrategyClass.columns_hash['ended_on'].type.should eql :date
54
54
  end
55
55
  end
56
56
 
@@ -19,6 +19,21 @@ class RelativeChronologicableWithTimeZone < ActiveRecord::Base
19
19
  time_zone: :time_zone
20
20
  end
21
21
 
22
+ class RelativeChronologicalWithOverriddenTime < ActiveRecord::Base
23
+ extend Chronological
24
+
25
+ set_table_name 'relative_chronologicables'
26
+
27
+ timeframe type: :relative,
28
+ starting_offset: :starting_offset,
29
+ ending_offset: :ending_offset,
30
+ base_of_offset: :base_datetime_utc,
31
+ starting_time: :foobar_starting_time,
32
+ ending_time: :foobar_ending_time,
33
+ starting_date: :foobar_starting_date,
34
+ ending_date: :foobar_ending_date
35
+ end
36
+
22
37
  describe Chronological::RelativeStrategy, :timecop => true do
23
38
  let(:now) { nil }
24
39
  let(:starting_offset) { nil }
@@ -48,6 +63,15 @@ describe Chronological::RelativeStrategy, :timecop => true do
48
63
  time_zone: time_zone)
49
64
  end
50
65
 
66
+ let(:chronologicable_with_overridden_time) do
67
+ RelativeChronologicalWithOverriddenTime.new
68
+ end
69
+
70
+ it { chronologicable_with_overridden_time.should respond_to(:foobar_starting_time) }
71
+ it { chronologicable_with_overridden_time.should respond_to(:foobar_ending_time) }
72
+ it { chronologicable_with_overridden_time.should respond_to(:foobar_starting_date) }
73
+ it { chronologicable_with_overridden_time.should respond_to(:foobar_ending_date) }
74
+
51
75
  before { Timecop.freeze(now) }
52
76
 
53
77
  describe '.by_date' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronological
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0beta2
4
+ version: 1.0.0beta3
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-30 00:00:00.000000000 Z
13
+ date: 2012-10-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec