module DR::CoreExt::Enumerable

[Hash, Array].each {|m| m.include(Enumerable)} to reinclude

Public Instance Methods

classify(h) click to toggle source

Ex: [1,2,3,4].classify({odd: [1,3], default: :even})

> {:odd=>[1, 3], :even=>[2, 4]}

# File lib/dr/ruby_ext/core_modules.rb, line 7
def classify(h)
        invh=h.inverse
        default=h[:default]
        r={}
        each do |el|
                keys=invh.fetch(el,[default])
                keys.each do |key|
                        (r[key]||=[]) << el
                end
        end
        return r
end