On 7/8/06, William James <w_a_x_man / yahoo.com> 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