Class: Cronos::Interval::RepeatInterval
- Inherits:
-
Object
- Object
- Cronos::Interval::RepeatInterval
- Defined in:
- lib/cronos.rb
Instance Method Summary collapse
- #calculate_intervals(base, initial = 0) ⇒ Object
- #hours ⇒ Object
-
#initialize(multiple, interval) ⇒ RepeatInterval
constructor
A new instance of RepeatInterval.
- #minutes ⇒ Object
- #months ⇒ Object
- #to_a ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(multiple, interval) ⇒ RepeatInterval
Returns a new instance of RepeatInterval.
306 307 308 |
# File 'lib/cronos.rb', line 306 def initialize(multiple, interval) @multiple, @interval = multiple, interval end |
Instance Method Details
#calculate_intervals(base, initial = 0) ⇒ Object
335 336 337 338 339 340 |
# File 'lib/cronos.rb', line 335 def calculate_intervals(base, initial = 0) repeats = (base / @multiple) - 1 set = [initial] 1.upto(repeats) {|factor| set << (factor * @multiple + initial) } @intervals = set end |
#hours ⇒ Object
317 318 319 320 321 322 323 |
# File 'lib/cronos.rb', line 317 def hours raise 'Multiple of hours will not fit into a day' if (24 % @multiple) > 0 calculate_intervals(24) @interval.min = 0 @interval.hour = self @interval end |
#minutes ⇒ Object
310 311 312 313 314 315 |
# File 'lib/cronos.rb', line 310 def minutes raise 'Multiple of minutes will not fit into an hour' if (60 % @multiple) > 0 calculate_intervals(60) @interval.min = self @interval end |
#months ⇒ Object
325 326 327 328 329 330 331 332 333 |
# File 'lib/cronos.rb', line 325 def months raise 'Multiple of months will not fit into a year' if (12 % @multiple) > 0 calculate_intervals(12, 1) @interval.min ||= 0 @interval.hour ||= 0 @interval.day ||= 1 @interval.month = self @interval end |
#to_a ⇒ Object
346 347 348 |
# File 'lib/cronos.rb', line 346 def to_a @intervals end |
#to_s ⇒ Object
342 343 344 |
# File 'lib/cronos.rb', line 342 def to_s @intervals.join(',') end |