diff options
author | Carlhuda <carlhuda@engineyard.com> | 2010-03-15 11:58:05 -0700 |
---|---|---|
committer | Carlhuda <carlhuda@engineyard.com> | 2010-03-15 14:50:43 -0700 |
commit | 9de83050d3a4b260d4aeb5d09ec4eb64f913ba64 (patch) | |
tree | 1688303e527eec441a5ec79011f06907dfe5a264 /actionpack/test/fixtures/layouts | |
parent | 1f2738261f3c3c061540bb20e3a1edec96b76034 (diff) | |
download | rails-9de83050d3a4b260d4aeb5d09ec4eb64f913ba64.tar.gz rails-9de83050d3a4b260d4aeb5d09ec4eb64f913ba64.tar.bz2 rails-9de83050d3a4b260d4aeb5d09ec4eb64f913ba64.zip |
Add deprecation notices for <% %>.
* The approach is to compile <% %> into a method call that checks whether
the value returned from a block is a String. If it is, it concats to the buffer and
prints a deprecation warning.
* <%= %> uses exactly the same logic to compile the template, which first checks
to see whether it's compiling a block.
* This should have no impact on other uses of block in templates. For instance, in
<% [1,2,3].each do |i| %><%= i %><% end %>, the call to each returns an Array,
not a String, so the result is not concatenated
* In two cases (#capture and #cache), a String can be returned that should *never*
be concatenated. We have temporarily created a String subclass called NonConcattingString
which behaves (and is serialized) identically to String, but is not concatenated
by the code that handles deprecated <% %> block helpers. Once we remove support
for <% %> block helpers, we can remove NonConcattingString.
Diffstat (limited to 'actionpack/test/fixtures/layouts')
-rw-r--r-- | actionpack/test/fixtures/layouts/block_with_layout.erb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/actionpack/test/fixtures/layouts/block_with_layout.erb b/actionpack/test/fixtures/layouts/block_with_layout.erb index f25b41271d..73ac833e52 100644 --- a/actionpack/test/fixtures/layouts/block_with_layout.erb +++ b/actionpack/test/fixtures/layouts/block_with_layout.erb @@ -1,3 +1,3 @@ -<% render(:layout => "layout_for_partial", :locals => { :name => "Anthony" }) do %>Inside from first block in layout<% "Return value should be discarded" %><% end %> +<%= render(:layout => "layout_for_partial", :locals => { :name => "Anthony" }) do %>Inside from first block in layout<% "Return value should be discarded" %><% end %> <%= yield %> -<% render(:layout => "layout_for_partial", :locals => { :name => "Ramm" }) do %>Inside from second block in layout<% end %> +<%= render(:layout => "layout_for_partial", :locals => { :name => "Ramm" }) do %>Inside from second block in layout<% end %> |