lib/multi_range.rb in multi_range-1.0.0 vs lib/multi_range.rb in multi_range-1.1.0

- old
+ new

@@ -23,11 +23,11 @@ def initialize(ranges) @ranges = ranges.map{|s| s.is_a?(Integer) ? s..s : s }.sort_by(&:begin).freeze end - def flatten + def merge_overlaps return MultiRange.new([]) if @ranges.size == 0 new_ranges = [] current_range = nil @@ -80,14 +80,14 @@ return MultiRange.new(new_ranges) end def |(other) other_ranges = other.is_a?(MultiRange) ? other.ranges : [other] - return MultiRange.new(@ranges + other_ranges).flatten + return MultiRange.new(@ranges + other_ranges).merge_overlaps end def overlaps?(other) - multi_range = flatten + multi_range = merge_overlaps return multi_range.size != (multi_range - other).size end def sample range = RouletteWheelSelection.sample(@ranges.map{|s| [s, s.size] }.to_h)