class Daterval::Set
Attributes
list[RW]
Public Class Methods
new(*pairs)
click to toggle source
# File lib/daterval/set.rb, line 5 def initialize(*pairs) @list = pairs end
Public Instance Methods
each() { |pair| ... }
click to toggle source
# File lib/daterval/set.rb, line 9 def each list.each { |pair| yield pair } end
merged!()
click to toggle source
# File lib/daterval/set.rb, line 13 def merged! sorted = list.sort_by(&:begin) new_list = [] sorted.each do |pair| merged = false new_list.each_with_index do |pair_x, index_x| if pair.overlaps?(pair_x) new_list[index_x] = pair.overlap(pair_x) merged = true end end new_list << pair unless merged end @list = new_list self end