Skip to content
instance method

Set#classify

[X] () { (A) -> X } -> ::Hash[X, self]
classify { |o| ... } → hash
classify → enumerator

Classifies the set by the return value of the given block and returns a hash of {value => set of elements} pairs. The block is called once for each element of the set, passing the element as parameter.

Example
files = Set.new(Dir.glob("*.rb"))
hash = files.classify { |f| File.mtime(f).year }
hash       #=> {2000 => Set["a.rb", "b.rb"],
           #    2001 => Set["c.rb", "d.rb", "e.rb"],
           #    2002 => Set["f.rb"]}

Returns an enumerator if no block is given.

See also #as_json #clear #add? #collect! also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0