Module: DR::CoreExt::Enumerable

Defined in:
lib/dr/ruby_ext/core_modules.rb

Overview

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

Instance Method Summary collapse

Instance Method Details

#classify(h) ⇒ Object

Ex: [1,2,3,4].classify([1,3], default: :even) => 3], :even=>[2, 4]



7
8
9
10
11
12
13
14
15
16
17
18
# 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