On Monday, 10 October 2011 at 9:12 AM, Matt Jones wrote:

> Not sure if this is the right place for this, but it's certainly to do with 
> core Rails and only of interest to pretty hard-core framework hackers...
> 
> Anyways, the issue I ran into was that aliasing a method (<<) to a setter 
> (append=) doesn't quite work the way you'd expect. For instance:
> 
> x = ActionView::OutputBuffer.new('something')
> result1 = (x << ' else ') # => 'something else'
> result2 = (x.append= ('entirely')) # => 'entirely'
> 
Unless I'm mistaken, which is often the case, this difference was actually 
deliberately introduced to allow the backwards compatible support for <%= foo 
do %> and <% foo do %>. 
> In the second example, the return value from the call is the value that was 
> passed in (Ruby's standard behavior for assignments in general). The return 
> value of append= is silently dropped on the floor.
> 
> Note that this will never be observed by users of the built-in ERB template 
> parser, since it automatically grabs @output_buffer in the Erubis postamble.
> 
> --Matt Jones
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To post to this group, send email to rubyonrails-core@googlegroups.com 
> (mailto:rubyonrails-core@googlegroups.com).
> To unsubscribe from this group, send email to 
> rubyonrails-core+unsubscr...@googlegroups.com 
> (mailto:rubyonrails-core+unsubscr...@googlegroups.com).
> For more options, visit this group at 
> http://groups.google.com/group/rubyonrails-core?hl=en.
 -- 
Cheers,

Koz

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to rubyonrails-core@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-core+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to