Class: Daterval::Pair

Inherits:
Object
  • Object
show all
Defined in:
lib/daterval/pair.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(begin_time, end_time) ⇒ Pair

Returns a new instance of Pair.



3
4
5
6
7
8
9
10
# File 'lib/daterval/pair.rb', line 3

def initialize(begin_time, end_time)
  begin_time = Time.parse(begin_time) if begin_time.is_a?(String)
  end_time = Time.parse(end_time) if end_time.is_a?(String)

  begin_time, end_time = end_time, begin_time if end_time < begin_time

  @range = begin_time..end_time
end

Instance Attribute Details

#rangeObject

Returns the value of attribute range.



39
40
41
# File 'lib/daterval/pair.rb', line 39

def range
  @range
end

Instance Method Details

#==(other) ⇒ Object



24
25
26
# File 'lib/daterval/pair.rb', line 24

def ==(other)
  range.begin == other.begin && range.end == other.end
end

#beginObject



12
13
14
# File 'lib/daterval/pair.rb', line 12

def begin
  range.begin
end

#endObject



16
17
18
# File 'lib/daterval/pair.rb', line 16

def end
  range.end
end

#overlap(other) ⇒ Object



32
33
34
35
36
37
# File 'lib/daterval/pair.rb', line 32

def overlap(other)
  begin_time = range.begin < other.begin ? range.begin : other.begin
  end_time = range.end > other.end ? range.end : other.end

  self.class.new(begin_time, end_time)
end

#overlaps?(other) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/daterval/pair.rb', line 28

def overlaps?(other)
  range.overlaps?(other.range)
end

#to_iObject



20
21
22
# File 'lib/daterval/pair.rb', line 20

def to_i
  range.end.to_i - range.begin.to_i
end