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
11
12
# File 'lib/opening_hours_converter/date_range.rb', line 5

def initialize(wide_interval = nil)
  @wide_interval = nil
  @typical = nil
  @comment = ''
  @fallback_suffix = nil
  @fallback_ranges = []
  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

#fallback_rangesObject

Returns the value of attribute fallback_ranges.



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

def fallback_ranges
  @fallback_ranges
end

#fallback_suffixObject

Returns the value of attribute fallback_suffix.



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

def fallback_suffix
  @fallback_suffix
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



39
40
41
# File 'lib/opening_hours_converter/date_range.rb', line 39

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

#defines_typical_day?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/opening_hours_converter/date_range.rb', line 14

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

#defines_typical_week?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/opening_hours_converter/date_range.rb', line 18

def defines_typical_week?
  @typical.instance_of?(OpeningHoursConverter::Week)
end

#has_same_typical?(date_range) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/opening_hours_converter/date_range.rb', line 43

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)


47
48
49
# File 'lib/opening_hours_converter/date_range.rb', line 47

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)


51
52
53
54
55
56
57
58
59
60
61
# File 'lib/opening_hours_converter/date_range.rb', line 51

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



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/opening_hours_converter/date_range.rb', line 22

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