Class: RangesMerger
Instance Attribute Summary collapse
Instance Method Summary
collapse
merge
array_to_ranges, normalize_array
exclude, two_way_exclusion
Constructor Details
#initialize(_array = []) ⇒ RangesMerger
Returns a new instance of RangesMerger.
14
15
16
17
18
|
# File 'lib/ranges_merger.rb', line 14
def initialize(_array = [])
@ranges = self.class.merge(
self.class.normalize_array(_array)
)
end
|
Instance Attribute Details
#ranges ⇒ Object
Returns the value of attribute ranges.
12
13
14
|
# File 'lib/ranges_merger.rb', line 12
def ranges
@ranges
end
|
Instance Method Details
#%(interval) ⇒ Object
46
47
48
|
# File 'lib/ranges_merger.rb', line 46
def %(interval)
divide(interval, false)
end
|
#+(_array) ⇒ Object
25
26
27
|
# File 'lib/ranges_merger.rb', line 25
def +(_array)
add(_array)
end
|
#-(_array) ⇒ Object
34
35
36
|
# File 'lib/ranges_merger.rb', line 34
def -(_array)
remove(_array)
end
|
#/(interval) ⇒ Object
42
43
44
|
# File 'lib/ranges_merger.rb', line 42
def /(interval)
divide(interval, true)
end
|
#add(_array) ⇒ Object
20
21
22
23
|
# File 'lib/ranges_merger.rb', line 20
def add(_array)
@ranges = self.class.merge(@ranges + _array)
return self
end
|
#divide(interval, allow_partials = true) ⇒ Object
38
39
40
|
# File 'lib/ranges_merger.rb', line 38
def divide(interval, allow_partials = true)
return self.class.divide(@ranges, interval, allow_partials)
end
|
#remove(_array) ⇒ Object
29
30
31
32
|
# File 'lib/ranges_merger.rb', line 29
def remove(_array)
@ranges = self.class.exclude(@ranges, _array)
return self
end
|
#to_array ⇒ Object
54
55
56
|
# File 'lib/ranges_merger.rb', line 54
def to_array
@ranges
end
|
#to_ranges ⇒ Object
50
51
52
|
# File 'lib/ranges_merger.rb', line 50
def to_ranges
self.class.array_to_ranges(@ranges)
end
|