Sha256: 4164a639c4197331fda14606c13f31507cf5f35aca944d376eef2d728037cb76
Contents?: true
Size: 798 Bytes
Versions: 1
Compression:
Stored size: 798 Bytes
Contents
class RangeBuilder # Usage: # build_range( persons ){|person| person.age } def self.build_range enum first, last = nil, nil comp_first, comp_last = nil, nil enum.each do |obj| comp = yield obj if first == nil || comp < comp_first first = obj comp_first = yield first end if last == nil || comp > comp_last last = obj comp_last = yield last end end [first, last] end # arg: sorted enum. elements must implement succ def self.build_from_sorted enum ranges = [] first = enum.first last = nil enum.each_cons(2) do |a,b| last = b if a.succ != b ranges << Range.new(first,a) first = b end end ranges << Range.new(first,last) ranges end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
range_builder-1.0.0 | lib/range_builder.rb |