class Mhc::DateFrame::Base
Public Class Methods
new(start_date, interval = 1, wkst = 1)
click to toggle source
# File lib/mhc/date_frame.rb, line 11 def initialize(start_date, interval = 1, wkst = 1) @start_date, @interval, @wkst = start_date, interval, wkst rewind end
Public Instance Methods
each() { |date| ... }
click to toggle source
# File lib/mhc/date_frame.rb, line 16 def each loop do date = self.next yield date end end
forward_to(date)
click to toggle source
go forward to the frame in which DATE is involved
# File lib/mhc/date_frame.rb, line 39 def forward_to(date) rewind frames = frames_between(@frame_start, date) cycles = (frames + (@interval - 1)) / @interval self.next(cycles) if cycles > 0 return self end
next(cycles = 1)
click to toggle source
# File lib/mhc/date_frame.rb, line 23 def next(cycles = 1) frame = @frame_start @frame_start = next_frame_start(cycles) return frame end
peek()
click to toggle source
# File lib/mhc/date_frame.rb, line 29 def peek @frame_start end
rewind()
click to toggle source
# File lib/mhc/date_frame.rb, line 33 def rewind @frame_start = beginning_of_frame(@start_date) return self end
Private Instance Methods
beginning_of_frame(date)
click to toggle source
# File lib/mhc/date_frame.rb, line 52 def beginning_of_frame(date) raise "should be defined in subclasses" end
frames_between(date1, date2)
click to toggle source
# File lib/mhc/date_frame.rb, line 56 def frames_between(date1, date2) raise "should be defined in subclasses" end
next_frame_start(cycles = 1)
click to toggle source
# File lib/mhc/date_frame.rb, line 48 def next_frame_start(cycles = 1) raise "should be defined in subclasses" end