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(w = 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(w=nil)
  @wide_interval = nil
  @typical = nil
  @comment = ""
  update_range(w)
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
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
# File 'lib/opening_hours_converter/date_range.rb', line 49

def is_holiday?
  result = false
  result = @wide_interval.type == "holiday"
  if !result
    @typical.intervals.each do |i|
      result = true if i.day_start == -2 && i.day_end == -2
    end
  end
  result
end

#update_range(wide) ⇒ 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)
  @wide_interval = !wide.nil? ? wide : OpeningHoursConverter::WideInterval.new.always

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