Fixed this in r511.

I still think there's a time and a place for that pattern.  It's not  
magical and it follows a clear precedent in good OO design.  It is  
decidedly *not* as performant as it's sometimes longer handed  
counterpart, but Ruby is a language in which the value of being  
succinct is frequently more important than being very fast.  I'd  
rather not sacrifice a bit of beauty in my code for a few  
milliseconds parsing difference, since most of the overhead occurs in  
method dispatch.

just my 2ยข

--

Stephen Caudill (voxdolo)

On Sep 4, 2007, at 4:46 PM, Brian Candler wrote:

> The following construct is an ActiveSupport-ism:
>
>   returning(Foo.new) do |foo|
>     ...
>   end
>
> I don't especially like it, since it's both more verbose and less  
> efficient
> than the direct alternative:
>
>   foo = Foo.new
>   ...
>   foo
>
> It doesn't occur many times in Merb, so does anyone agree with me  
> that it
> should be removed?
>
> I tried doing this (patch attached) and I find the code more readable
> without. For example, in lib/merb/mixins/responder.rb
>
> Before:
>
>         def <=>(entry)
>           returning((entry.quality <=> quality).to_s) do |c|
>             c.replace((index <=> entry.index).to_s) if c == '0'
>           end.to_i
>         end
>
> After:
>
>         def <=>(entry)
>           c = (entry.quality <=> quality).to_s
>           c.replace((index <=> entry.index).to_s) if c == '0'
>           c.to_i
>         end
>
> This second form also more clearly begs the question, why is the  
> result from
> <=> being converted to string and then back to integer? I don't  
> know the
> answer to that :-)
>
> I believe the attached patch is OK - it doesn't break any specs. It  
> doesn't
> remove the definition of Object#returning itself, or its spec.
>
> Regards,
>
> Brian.
> <merb-returning.diff>
> _______________________________________________
> Merb-devel mailing list
> Merb-devel@rubyforge.org
> http://rubyforge.org/mailman/listinfo/merb-devel

_______________________________________________
Merb-devel mailing list
Merb-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/merb-devel

Reply via email to