module Enumerable

Public Instance Methods

chunk() { |o| ... } click to toggle source
# File lib/zenweb/extensions.rb, line 13
def chunk
  bin, result, prev = [], [], Object.new

  each do |o|
    curr = yield o

    if prev != curr then
      bin = []
      result << [curr, bin]
      prev = curr
    end

    bin << o
  end

  result
end
multi_group_by() { |o| ... } click to toggle source
# File lib/zenweb/extensions.rb, line 31
def multi_group_by
  r = Hash.new { |h,k| h[k] = [] }
  each do |o|
    Array(yield(o)).each do |k|
      r[k] << o
    end
  end
  r
end