From: Sean O'Halpin Date: 2005-10-26T20:47:54+09:00 Subject: Re: Enumerable#build On 10/26/05, Martin DeMello wrote: > class Enumerable > def build(seed) > each {|i| > seed.add(yield i) > } > end > end > > and > > Array#build == Array#<< > Hash#build(k,v) == Hash#[] > etc > Not sure you tested this! :) Maybe something like this: module Enumerable def build(seed) each {|i| seed.add(*(yield i)) } seed end end class Hash alias :add :store end class Array def add(*args) self << args end end p [1,2,3].build({}) {|i| [i, 1]} p [1,2,3].build([]) {|i| [i, 1]} ---------- Output ---------- {1=>1, 2=>1, 3=>1} [[1, 1], [2, 1], [3, 1]] Regards, Sean