class TimeCost::RangeList
Public Class Methods
new()
click to toggle source
# File lib/timecost/range_list.rb, line 4 def initialize @ranges = [] end
Public Instance Methods
add(range)
click to toggle source
# File lib/timecost/range_list.rb, line 8 def add range merged = false merged_range = nil # merge @ranges.each do |old| #pp old if old.overlap? range then old.merge range merged_range = old merged = true break end end # add if needed if merged then @ranges.delete merged_range self.add merged_range else @ranges.push range end end
each() { |r| ... }
click to toggle source
# File lib/timecost/range_list.rb, line 32 def each @ranges.each do |r| yield r end end
sum()
click to toggle source
# File lib/timecost/range_list.rb, line 38 def sum result = 0 @ranges.each do |r| result += r.diff end return result end