From: Phil Tomson Date: 2006-07-09T04:16:01+09:00 Subject: Re: Sweet Lord! On 7/8/06, William James wrote: > Daniel Schierbeck wrote: > > Why haven't I thought of this before? > > > > class Terminal > > include Enumerable > > > > def each(&block) > > while input = gets > > block.call(input.chomp) > > end > > end > > def each > while input = gets > yield input.chomp > end > end Equivilent code, actually. It's a case of "you say tomaTOE I say tomAHto" Personally, I tend to prefer the 'block.call' because you explicitly say you're passing in a block in the definition of the method, so if someone is reading your code they can easily tell that the method takes a block. In the case of yield you might need to read through a good bit of code before you find out that the method takes a block. Phil