> >> class Class > >> def method_missing(meth, *params) > >> if block_given? > if iterator? > >> self.new(*params).send(meth) { |*p| yield *p } > self.new(*params).send(meth) { |p| yield p } > >> else > >> self.new(*params).send(meth) > >> end > >> end > >> end why not this? class Class def method_missing(meth, *params, &block) self.new(*params).send(meth,&block) end end matju