ice_cube 0.12.0 → 0.12.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8d575d65663825eb9be2a82f9e931537009d485
4
- data.tar.gz: 2e292c2f229a8a7b7aaaf8f8dcaf009412741745
3
+ metadata.gz: 2ac4ca18d263a59f5e9499349ce536e63d8ec59f
4
+ data.tar.gz: 3d2d4ed0d0cf8c0632b870b19e59ac964d64f93a
5
5
  SHA512:
6
- metadata.gz: 98e4ffa4ddc22fb26da6eb632203e389361149216ad62193f64c773fe1a68da07dff80ab3f0470cbc1d0dabfc049780b86eb4f270469b2e47539e46016709c1e
7
- data.tar.gz: 2882dc6f6af47db013a1ee079c2fc06ecf254274b0d39b00f24bc6a8e72021b4935e27463a65ab7c01740180bcab4236bfc15507825b3db910b4bf16f5ab6ce3
6
+ metadata.gz: d6715a91023b1c7c0fa7f1bdc59776c0182b3742bd37a6fc28fd14e0bd15ee5e4d0e2c1014c03c43c04cfaaee8b73ed19d5a7557b815f949fe72d044fb9a61bb
7
+ data.tar.gz: f2941f23021a8062fc35cc3f3dd1bd2010903645d723aa9bf7ba3b50a4c240ef88757539c6317b4cab967f7d357a5ccf915d84c963659a97a54d47f5c05efc53
data/lib/ice_cube.rb CHANGED
@@ -57,7 +57,6 @@ module IceCube
57
57
  autoload :DayOfWeek, 'ice_cube/validations/day_of_week'
58
58
  autoload :Day, 'ice_cube/validations/day'
59
59
  autoload :DayOfYear, 'ice_cube/validations/day_of_year'
60
-
61
60
  end
62
61
 
63
62
  # Define some useful constants
@@ -1,38 +1,36 @@
1
1
  module IceCube
2
- module Deprecated
2
+ module Deprecated
3
3
 
4
- # Define a deprecated alias for a method
5
- # @param [Symbol] name - name of method to define
6
- # @param [Symbol] replacement - name of method to replace (alias)
7
- def deprecated_alias(name, replacement)
8
- # Create a wrapped version
9
- define_method(name) do |*args, &block|
10
- warn "IceCube: ##{name} deprecated (please use ##{replacement})"
11
- send replacement, *args, &block
12
- end
13
- end
4
+ # Define a deprecated alias for a method
5
+ # @param [Symbol] name - name of method to define
6
+ # @param [Symbol] replacement - name of method to replace (alias)
7
+ def deprecated_alias(name, replacement)
8
+ # Create a wrapped version
9
+ define_method(name) do |*args, &block|
10
+ warn "IceCube: #{self.class}##{name} is deprecated, please use ##{replacement} at: #{ caller[0] }"
11
+ send replacement, *args, &block
12
+ end
13
+ end
14
14
 
15
- # Deprecate a defined method
16
- # @param [Symbol] name - name of deprecated method
17
- # @param [Symbol] replacement - name of the desired replacement
18
- def deprecated(name, replacement)
19
- # Replace old method
20
- old_name = :"#{name}_without_deprecation"
21
- alias_method old_name, name
22
- # And replace it with a wrapped version
23
- define_method(name) do |*args, &block|
24
- warn "IceCube: ##{name} deprecated (please use ##{replacement})"
25
- send old_name, *args, &block
26
- end
27
- end
15
+ # Deprecate a defined method
16
+ # @param [Symbol] name - name of deprecated method
17
+ # @param [Symbol] replacement - name of the desired replacement
18
+ def deprecated(name, replacement)
19
+ # Replace old method
20
+ old_name = :"#{name}_without_deprecation"
21
+ alias_method old_name, name
22
+ # And replace it with a wrapped version
23
+ define_method(name) do |*args, &block|
24
+ warn "IceCube: #{self.class}##{name} is deprecated, please use ##{replacement} at: #{ caller[0] }"
25
+ send old_name, *args, &block
26
+ end
27
+ end
28
28
 
29
29
  def self.schedule_options(schedule, options)
30
30
  if options[:start_date_override]
31
- warn "IceCube: :start_date_override option deprecated. " \
32
- "(please use a block { |s| s.start_time = override })"
31
+ warn "IceCube: :start_date_override option is deprecated, please use a block {|s| s.start_time = override }. at: #{ caller[0] }"
33
32
  schedule.start_time = options[:start_date_override]
34
33
  end
35
34
  end
36
-
37
- end
35
+ end
38
36
  end
@@ -26,13 +26,13 @@ module IceCube
26
26
  data = IceCube::FlexibleHash.new(hash.dup)
27
27
 
28
28
  if (start_date = data.delete(:start_date))
29
- warn "IceCube: :start_date deprecated. (please use :start_time)"
29
+ warn "IceCube: :start_date is deprecated, please use :start_time at: #{ caller[0] }"
30
30
  data[:start_time] = start_date
31
31
  end
32
32
 
33
33
  {:rdates => :rtimes, :exdates => :extimes}.each do |old_key, new_key|
34
34
  if (times = data.delete(old_key))
35
- warn "IceCube: :#{old_key} deprecated. (please use :#{new_key})"
35
+ warn "IceCube: :#{old_key} is deprecated, please use :#{new_key} at: #{ caller[0] }"
36
36
  (data[new_key] ||= []).concat times
37
37
  end
38
38
  end
@@ -59,7 +59,7 @@ module IceCube
59
59
 
60
60
  def apply_exrules(schedule, data)
61
61
  return unless data[:exrules]
62
- warn "IceCube: :exrules deprecated. (This will be going away)"
62
+ warn "IceCube: :exrules is deprecated, and will be removed in a future release. at: #{ caller[0] }"
63
63
  data[:exrules].each do |h|
64
64
  schedule.exrule(IceCube::Rule.from_hash(h))
65
65
  end
@@ -1,3 +1,5 @@
1
+ require 'yaml'
2
+
1
3
  module IceCube
2
4
  class YamlParser < HashParser
3
5
 
@@ -7,15 +9,11 @@ module IceCube
7
9
 
8
10
  def initialize(yaml)
9
11
  @hash = YAML::load(yaml)
10
- yaml.match(SERIALIZED_START) do |match|
12
+ yaml.match SERIALIZED_START do |match|
11
13
  start_time = hash[:start_time] || hash[:start_date]
12
- hash = FlexibleHash.new(@hash)
13
14
  TimeUtil.restore_deserialized_offset start_time, match[:tz]
14
15
  end
15
16
  end
16
17
 
17
- private
18
-
19
-
20
18
  end
21
19
  end
@@ -380,11 +380,13 @@ module IceCube
380
380
  end
381
381
 
382
382
  def self.dump(schedule)
383
+ return schedule if schedule.nil? || schedule == ""
383
384
  schedule.to_yaml
384
385
  end
385
386
 
386
387
  def self.load(yaml)
387
- from_yaml(yaml) unless yaml.nil? || yaml.empty?
388
+ return yaml if yaml.nil? || yaml == ""
389
+ from_yaml(yaml)
388
390
  end
389
391
 
390
392
  private
@@ -1,4 +1,5 @@
1
1
  require 'date'
2
+ require 'time'
2
3
 
3
4
  module IceCube
4
5
  module TimeUtil
@@ -42,7 +43,7 @@ module IceCube
42
43
  def self.ensure_time(time, date_eod = false)
43
44
  case time
44
45
  when DateTime
45
- warn "IceCube: DateTime support is deprecated (please use Time)"
46
+ warn "IceCube: DateTime support is deprecated (please use Time) at: #{ caller[2] }"
46
47
  Time.local(time.year, time.month, time.day, time.hour, time.min, time.sec)
47
48
  when Date
48
49
  date_eod ? end_of_date(time) : time.to_time
@@ -69,13 +70,16 @@ module IceCube
69
70
  end
70
71
  end
71
72
 
72
- # Deserialize a time serialized with serialize_time
73
+ # Deserialize a time serialized with serialize_time or in ISO8601 string format
73
74
  def self.deserialize_time(time_or_hash)
74
- if time_or_hash.is_a?(Time)
75
+ case time_or_hash
76
+ when Time
75
77
  time_or_hash
76
- elsif time_or_hash.is_a?(Hash)
78
+ when Hash
77
79
  hash = FlexibleHash.new(time_or_hash)
78
80
  hash[:time].in_time_zone(hash[:zone])
81
+ when String
82
+ Time.parse(time_or_hash)
79
83
  end
80
84
  end
81
85
 
@@ -87,7 +91,7 @@ module IceCube
87
91
  def self.restore_deserialized_offset(time, orig_offset_str)
88
92
  return time if time.respond_to?(:time_zone) ||
89
93
  time.getlocal(orig_offset_str).utc_offset == time.utc_offset
90
- warn 'IceCube: parsed Time from nonlocal TZ. Use ActiveSupport to fix DST'
94
+ warn "IceCube: parsed Time from nonlocal TZ. Use ActiveSupport to fix DST at: #{ caller[0] }"
91
95
  time.localtime(orig_offset_str)
92
96
  end
93
97
 
@@ -106,6 +106,11 @@ module IceCube
106
106
  end
107
107
 
108
108
  private
109
+ def normalized_interval(interval)
110
+ int = interval.to_i
111
+ raise ArgumentError, "'#{interval}' is not a valid input for interval. Please pass an integer." unless int > 0
112
+ int
113
+ end
109
114
 
110
115
  def finds_acceptable_time?
111
116
  validation_names.all? do |type|
@@ -4,8 +4,8 @@ module IceCube
4
4
 
5
5
  # Add a new interval validation
6
6
  def interval(interval)
7
- @interval = interval
8
- replace_validations_for(:interval, [Validation.new(interval)])
7
+ @interval = normalized_interval(interval)
8
+ replace_validations_for(:interval, [Validation.new(@interval)])
9
9
  clobber_base_validations(:wday, :day)
10
10
  self
11
11
  end
@@ -3,8 +3,8 @@ module IceCube
3
3
  module Validations::HourlyInterval
4
4
 
5
5
  def interval(interval)
6
- @interval = interval
7
- replace_validations_for(:interval, [Validation.new(interval)])
6
+ @interval = normalized_interval(interval)
7
+ replace_validations_for(:interval, [Validation.new(@interval)])
8
8
  clobber_base_validations(:hour)
9
9
  self
10
10
  end
@@ -3,8 +3,8 @@ module IceCube
3
3
  module Validations::MinutelyInterval
4
4
 
5
5
  def interval(interval)
6
- @interval = interval
7
- replace_validations_for(:interval, [Validation.new(interval)])
6
+ @interval = normalized_interval(interval)
7
+ replace_validations_for(:interval, [Validation.new(@interval)])
8
8
  clobber_base_validations(:min)
9
9
  self
10
10
  end
@@ -3,8 +3,8 @@ module IceCube
3
3
  module Validations::MonthlyInterval
4
4
 
5
5
  def interval(interval)
6
- @interval = interval
7
- replace_validations_for(:interval, [Validation.new(interval)])
6
+ @interval = normalized_interval(interval)
7
+ replace_validations_for(:interval, [Validation.new(@interval)])
8
8
  clobber_base_validations(:month)
9
9
  self
10
10
  end
@@ -3,8 +3,8 @@ module IceCube
3
3
  module Validations::SecondlyInterval
4
4
 
5
5
  def interval(interval)
6
- @interval = interval
7
- replace_validations_for(:interval, [Validation.new(interval)])
6
+ @interval = normalized_interval(interval)
7
+ replace_validations_for(:interval, [Validation.new(@interval)])
8
8
  clobber_base_validations(:sec)
9
9
  self
10
10
  end
@@ -5,9 +5,9 @@ module IceCube
5
5
  module Validations::WeeklyInterval
6
6
 
7
7
  def interval(interval, week_start = :sunday)
8
- @interval = interval
8
+ @interval = normalized_interval(interval)
9
9
  @week_start = TimeUtil.wday_to_sym(week_start)
10
- replace_validations_for(:interval, [Validation.new(interval, week_start)])
10
+ replace_validations_for(:interval, [Validation.new(@interval, week_start)])
11
11
  clobber_base_validations(:day)
12
12
  self
13
13
  end
@@ -3,9 +3,10 @@ module IceCube
3
3
  module Validations::YearlyInterval
4
4
 
5
5
  def interval(interval)
6
- @interval = interval
7
- replace_validations_for(:interval, [Validation.new(interval)])
6
+ @interval = normalized_interval(interval)
7
+ replace_validations_for(:interval, [Validation.new(@interval)])
8
8
  clobber_base_validations(:year)
9
+ self
9
10
  end
10
11
 
11
12
  class Validation
@@ -1,5 +1,5 @@
1
1
  module IceCube
2
2
 
3
- VERSION = '0.12.0'
3
+ VERSION = '0.12.1'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ice_cube
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.12.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Crepezzi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-06 00:00:00.000000000 Z
11
+ date: 2014-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.12.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: active_support
42
+ name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -78,12 +78,9 @@ files:
78
78
  - lib/ice_cube/builders/ical_builder.rb
79
79
  - lib/ice_cube/builders/string_builder.rb
80
80
  - lib/ice_cube/deprecated.rb
81
- - lib/ice_cube/enumerator.rb
82
81
  - lib/ice_cube/errors/count_exceeded.rb
83
82
  - lib/ice_cube/errors/until_exceeded.rb
84
83
  - lib/ice_cube/flexible_hash.rb
85
- - lib/ice_cube/formatters/string.rb
86
- - lib/ice_cube/hash_input.rb
87
84
  - lib/ice_cube/occurrence.rb
88
85
  - lib/ice_cube/parsers/hash_parser.rb
89
86
  - lib/ice_cube/parsers/yaml_parser.rb
@@ -97,8 +94,6 @@ files:
97
94
  - lib/ice_cube/rules/yearly_rule.rb
98
95
  - lib/ice_cube/schedule.rb
99
96
  - lib/ice_cube/single_occurrence_rule.rb
100
- - lib/ice_cube/string_helpers.rb
101
- - lib/ice_cube/time_step.rb
102
97
  - lib/ice_cube/time_util.rb
103
98
  - lib/ice_cube/validated_rule.rb
104
99
  - lib/ice_cube/validations/count.rb
@@ -148,4 +143,3 @@ specification_version: 4
148
143
  summary: Ruby Date Recurrence Library
149
144
  test_files:
150
145
  - spec/spec_helper.rb
151
- has_rdoc: true
@@ -1,63 +0,0 @@
1
- module IceCube
2
- class Enumerator < ::Enumerator
3
-
4
- def initialize(schedule, from_time, to_time)
5
- @schedule = schedule
6
- @from_time = TimeUtil.ensure_time(from_time)
7
- @to_time = TimeUtil.ensure_time(to_time)
8
- align_start_time
9
- @cursor = @from_time
10
- end
11
-
12
- def each
13
- while res = self.find_next && @to_time.nil? || res <= @to_time
14
- yield Occurrence.new(res, res + schedule.duration)
15
- end
16
- raise StopIteration
17
- end
18
-
19
- def find_next
20
- loop do
21
- min_time = recurrence_rules.reduce(nil) do |min_time, rule|
22
- catch :limit do
23
- new_time = rule.next_time(time, schedule, min_time || @to_time)
24
- [min_time, new_time].compact.min
25
- end
26
- end
27
- break nil unless min_time
28
- @cursor = min_time + 1
29
- next if exception_time?(min_time)
30
- break min_time
31
- end
32
- end
33
-
34
- private
35
-
36
- def align_start_time
37
- if @from_time <= schedule.start_time || full_required?
38
- @from_time = schedule.start_time
39
- else
40
- @from_time += @schedule.start_time.subsec - @from_time.subsec rescue 0
41
- end
42
- end
43
-
44
- # Return a boolean indicating if any rule needs to be run from the start of time
45
- def full_required?
46
- recurrence_rules.any?(&:full_required?) ||
47
- exception_rules.any?(&:full_required?)
48
- end
49
-
50
- def exception_rules
51
- schedule.instance_variable_get(:@all_exception_rules)
52
- end
53
-
54
- def recurrence_rules
55
- @recurrence_rules ||= if recurrence_rules.empty?
56
- [SingleOccurrenceRule.new(schedule.start_time)].concat schedule.instance_variable_get(:@all_recurrence_rules)
57
- else
58
- schedule.instance_variable_get(:@all_recurrence_rules)
59
- end
60
- end
61
-
62
- end
63
- end
@@ -1,155 +0,0 @@
1
- class IceCube::StringBuilder
2
-
3
- format :day do |entries|
4
- case entries = entries.sort
5
- when [0, 6] then 'on Weekends'
6
- when [1, 2, 3, 4, 5] then 'on Weekdays'
7
- else
8
- "on " << build(:sentence, build(:daynames, entries))
9
- end
10
- end
11
-
12
- format :dayname do |number|
13
- Date::DAYNAMES[number]
14
- end
15
-
16
- format :daynames do |entries|
17
- entries.map { |wday| build(:dayname, wday) + "s" }
18
- end
19
-
20
- format :monthnames do |entries|
21
- entries.map { |m| Date::MONTHNAMES[m] }
22
- end
23
-
24
- format :count do |number|
25
- times = number == 1 ? "time" : "times"
26
- "#{number} #{times}"
27
- end
28
-
29
- format :day_of_month do |entries|
30
- numbered = build(:sentence, build(:ordinals, entries))
31
- days = entries.size == 1 ? "day" : "days"
32
- "on the #{numbered} #{days} of the month"
33
- end
34
-
35
- format :day_of_week do |entries|
36
- numbered_weekdays = build(:daynames_of_week, entries).join(" and ")
37
- "on the #{numbered_weekdays}"
38
- end
39
-
40
- format :daynames_of_week do |entries|
41
- entries.map do |occurrence, wday|
42
- numbered = build(:ordinal, occurrence)
43
- weekday = build(:dayname, wday)
44
- "#{numbered} #{weekday}"
45
- end
46
- end
47
-
48
- format :day_of_year do |entries|
49
- numbered = build(:sentence, build(:ordinals, entries))
50
- days = entries.size == 1 ? "day" : "days"
51
- "on the #{numbered} #{days} of the year"
52
- end
53
-
54
- format :hour_of_day do |entries|
55
- numbered = build(:sentence, build(:ordinals, entries))
56
- hours = entries.size == 1 ? "hour" : "hours"
57
- "on the #{numbered} #{hours} of the day"
58
- end
59
-
60
- format :minute_of_hour do |entries|
61
- numbered = build(:sentence, build(:ordinals, entries))
62
- minutes = entries.size == 1 ? "minute" : "minutes"
63
- "on the #{numbered} #{minutes} of the hour"
64
- end
65
-
66
- format :month_of_year do |entries|
67
- "in " << build(:sentence, build(:monthnames, entries))
68
- end
69
-
70
- format :second_of_minute do |entries|
71
- numbered = build(:sentence, build(:ordinals, entries))
72
- seconds = entries.size == 1 ? "second" : "seconds"
73
- "on the #{numbered} #{seconds} of the minute"
74
- end
75
-
76
- format :time do |time|
77
- time.strftime(IceCube.to_s_time_format)
78
- end
79
-
80
- format :until do |time|
81
- "until " << build(:time, time)
82
- end
83
-
84
- format :sentence do |entries|
85
- case entries.length
86
- when 0 then ''
87
- when 1 then entries[0].to_s
88
- when 2 then "#{entries[0]} and #{entries[1]}"
89
- else "#{entries[0...-1].join(', ')}, and #{entries[-1]}"
90
- end
91
- end
92
-
93
- format :ordinals do |entries|
94
- entries = entries.sort
95
- entries.rotate! while entries[0] < 0 if entries.last > 0
96
- entries.map { |number| build(:ordinal, number) }
97
- end
98
-
99
- format :ordinal do |number|
100
- next "last" if number == -1
101
- suffix = SPECIAL_SUFFIX[number] || NUMBER_SUFFIX[number.abs % 10]
102
- if number < -1
103
- number.abs.to_s << suffix << " to last"
104
- else
105
- number.to_s << suffix
106
- end
107
- end
108
-
109
- format :daily_interval do |i|
110
- i == 1 ? "Daily" : "Every #{i} days"
111
- end
112
-
113
- format :hourly_interval do |i|
114
- i == 1 ? "Hourly" : "Every #{i} hours"
115
- end
116
-
117
- format :minutely_interval do |i|
118
- i == 1 ? "Minutely" : "Every #{i} minutes"
119
- end
120
-
121
- format :monthly_interval do |i|
122
- i == 1 ? "Monthly" : "Every #{i} months"
123
- end
124
-
125
- format :secondly_interval do |i|
126
- i == 1 ? "Secondly" : "Every #{i} seconds"
127
- end
128
-
129
- format :weekly_interval do |i|
130
- i == 1 ? "Weekly" : "Every #{i} weeks"
131
- end
132
-
133
- format :yearly_interval do |i|
134
- i == 1 ? "Yearly" : "Every #{i} years"
135
- end
136
-
137
- format :exrule do |rule|
138
- "not #{rule}"
139
- end
140
-
141
- format :extime do |time|
142
- "not on #{build(:time, time)}"
143
- end
144
-
145
- format :schedule do |s|
146
- times = s.recurrence_times_with_start_time - s.extimes
147
- pieces = []
148
- pieces.concat times.uniq.sort.map { |t| build(:time, t) }
149
- pieces.concat s.rrules.map { |t| t.to_s }
150
- pieces.concat s.exrules.map { |t| build(:exrule, t) }
151
- pieces.concat s.extimes.uniq.sort.map { |t| build(:extime, t) }
152
- pieces.join(' / ')
153
- end
154
-
155
- end
@@ -1,71 +0,0 @@
1
- module IceCube
2
- class HashInput
3
-
4
- class Mash
5
- def initialize(hash)
6
- @hash = hash
7
- end
8
-
9
- # Fetch values indifferently by symbol or string key without symbolizing
10
- # arbitrary string input
11
- #
12
- def [](key)
13
- @hash.fetch(key) do |key|
14
- str_key = key.to_s
15
- @hash.each_pair.detect do |sym_key, value|
16
- return value if sym_key.to_s == str_key
17
- end
18
- end
19
- end
20
- end
21
-
22
- def initialize(hash)
23
- @input = Mash.new(hash)
24
- end
25
-
26
- def [](key)
27
- @input[key]
28
- end
29
-
30
- def to_rule
31
- return nil unless rule_class
32
- rule = rule_class.new(interval, week_start)
33
- rule.until(limit_time) if limit_time
34
- rule.count(limit_count) if limit_count
35
- validations.each do |validation, args|
36
- rule.send(validation, *args)
37
- end
38
- end
39
-
40
- def rule_class
41
- return @rule_class if @rule_class
42
- match = @input[:rule_type].match(/::(\w+Rule)$/)
43
- @rule_class = IceCube.const_get(match[1]) if match
44
- end
45
-
46
- def interval
47
- @input[:interval] || 1
48
- end
49
-
50
- def week_start
51
- @input[:week_start] || :sunday
52
- end
53
-
54
- def limit_time
55
- @limit_time ||= TimeUtil.deserialize_time(@input[:until])
56
- end
57
-
58
- def limit_count
59
- @input[:count]
60
- end
61
-
62
- def validations
63
- input_validations = Mash.new(@input[:validations] || {})
64
- ValidatedRule::VALIDATION_ORDER.each_with_object({}) do |key, output_validations|
65
- args = input_validations[key]
66
- output_validations[key] = Array(args) if args
67
- end
68
- end
69
-
70
- end
71
- end
@@ -1,10 +0,0 @@
1
- module IceCube
2
- module StringHelpers
3
-
4
- module_function
5
-
6
- def nice_number(number)
7
- end
8
-
9
- end
10
- end
@@ -1,30 +0,0 @@
1
- module IceCube
2
- class TimeStep
3
- SECS = 1
4
- MINS = 60
5
- HOURS = MINS * 60
6
- DAYS = HOURS * 24
7
- WEEKS = DAYS * 7
8
- MONTHS = {
9
- 1 => [ 28, 29, 30, 31].map { |m| m * DAYS },
10
- 2 => [ 59, 60, 61, 62].map { |m| m * DAYS },
11
- 3 => [ 89, 90, 91, 92].map { |m| m * DAYS },
12
- 4 => [120, 121, 122, 123].map { |m| m * DAYS },
13
- 5 => [150, 151, 152, 153].map { |m| m * DAYS },
14
- 6 => [181, 182, 183, 184].map { |m| m * DAYS },
15
- 7 => [212, 213, 214, 215].map { |m| m * DAYS },
16
- 8 => [242, 243, 244, 245].map { |m| m * DAYS },
17
- 9 => [273, 274, 275, 276].map { |m| m * DAYS },
18
- 10 => [303, 304, 305, 306].map { |m| m * DAYS },
19
- 11 => [334, 335, 336, 337].map { |m| m * DAYS },
20
- 12 => [365, 366] .map { |m| m * DAYS }
21
- }
22
- YEARS = [365, 366]
23
-
24
- def next(base, validations)
25
- end
26
-
27
- def prev(base, validations)
28
- end
29
- end
30
- end