class Mhc::DateEnumerator::Base
Public Class Methods
new(start_date:, end_date:, interval: 1, wkst: 1)
click to toggle source
# File lib/mhc/date_enumerator.rb, line 97 def initialize(start_date:, end_date:, interval: 1, wkst: 1) @start_date, @end_date, @interval, @wkst = start_date, end_date, interval, wkst @frame_manager = frame_manager.new(start_date, interval, wkst) end
Public Instance Methods
each() { |date| ... }
click to toggle source
# File lib/mhc/date_enumerator.rb, line 102 def each head, tail = range @frame_manager.forward_to(head).each do |frame| break if frame > tail date = occurrence_in_frame(frame) next unless date break if date > tail next if date < head yield date end end
Private Instance Methods
frame_manager()
click to toggle source
# File lib/mhc/date_enumerator.rb, line 122 def frame_manager raise "should be defined in subclasses" end
occurrence_in_frame(date)
click to toggle source
# File lib/mhc/date_enumerator.rb, line 126 def occurrence_in_frame(date) raise "should be defined in subclasses" end
range()
click to toggle source
# File lib/mhc/date_enumerator.rb, line 116 def range s = (@range_from and @start_date < @range_from) ? @range_from : @start_date e = (@range_to and @end_date > @range_to) ? @range_to : @end_date return [s, e] end