Class: OpeningHoursConverter::DateRange

Inherits:
Object
  • Object
show all
Defined in:
lib/opening_hours_converter/date_range.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(wide_interval = nil) ⇒ DateRange

Returns a new instance of DateRange.



5
6
7
8
9
10
# 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

Instance Attribute Details

#commentObject

Returns the value of attribute comment.



3
4
5
# File 'lib/opening_hours_converter/date_range.rb', line 3

def comment
  @comment
end

#typicalObject

Returns the value of attribute typical.



3
4
5
# File 'lib/opening_hours_converter/date_range.rb', line 3

def typical
  @typical
end

#wide_intervalObject

Returns the value of attribute wide_interval.



3
4
5
# File 'lib/opening_hours_converter/date_range.rb', line 3

def wide_interval
  @wide_interval
end

Instance Method Details

#add_comment(comment = '') ⇒ Object



37
38
39
# File 'lib/opening_hours_converter/date_range.rb', line 37

def add_comment(comment = '')
  @comment += comment if comment
end

#defines_typical_day?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/opening_hours_converter/date_range.rb', line 12

def defines_typical_day?
  @typical.instance_of?(OpeningHoursConverter::Day)
end

#defines_typical_week?Boolean

Returns:

  • (Boolean)


16
17
18
# 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) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# 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) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# 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?Boolean

Returns:

  • (Boolean)


49
50
51
52
53
54
55
56
57
58
59
# 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) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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