class OpeningHoursConverter::DateRange

Attributes

comment[RW]
typical[RW]
wide_interval[RW]

Public Class Methods

new(wide_interval = nil) click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 5
def initialize(wide_interval = nil)
  @wide_interval = nil
  @typical = nil
  @comment = ''
  update_range(wide_interval)
end

Public Instance Methods

add_comment(comment = '') click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 37
def add_comment(comment = '')
  @comment += comment if comment
end
defines_typical_day?() click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 12
def defines_typical_day?
  @typical.instance_of?(OpeningHoursConverter::Day)
end
defines_typical_week?() click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 16
def defines_typical_week?
  @typical.instance_of?(OpeningHoursConverter::Week)
end
has_same_typical?(date_range) click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 41
def has_same_typical?(date_range)
  defines_typical_day? == date_range.defines_typical_day? && @typical.same_as?(date_range.typical)
end
is_general_for?(date_range) click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 45
def is_general_for?(date_range)
  defines_typical_day? == date_range.defines_typical_day? && @wide_interval.contains?(date_range.wide_interval) && @comment == date_range.comment
end
is_holiday?() click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 49
def is_holiday?
  result = @wide_interval.type == 'holiday'
  if !result
    @typical.intervals.each do |i|
      if !i.nil?
        result = true if i.day_start == -2 && i.day_end == -2
      end
    end
  end
  result
end
update_range(wide_interval) click to toggle source
# File lib/opening_hours_converter/date_range.rb, line 20
def update_range(wide_interval)
  @wide_interval = !wide_interval.nil? ? wide_interval : OpeningHoursConverter::WideInterval.new.always

  return unless @typical.nil?

  @typical = case @wide_interval.type
             when 'day'
               if @wide_interval.end.nil?
                 OpeningHoursConverter::Day.new
               else
                 OpeningHoursConverter::Week.new
               end
             else
               OpeningHoursConverter::Week.new
             end
end