Actions
Feature #11575
closedBlocks in ERB don't work as intended?
[ruby-core:<unknown>]
Description
I'm not sure if this is a problem with ERB, but here it goes -
require 'ERB'
require 'Erubis'
$results = []
def return_block(&block)
result = block.call
$results << result
return result
end
erb_template = <<-ERB
<% return_block { %>
<% "This should be stored in $results, but not sent to output" %>
<% } %>
<% return_block { %>
<%= "This should be stored in $results AND sent to output" %>
<% } %>
ERB
puts "Result of Template is:"
puts "---------------------"
#puts Erubis::Eruby.new(erb_template).result
puts ERB.new(erb_template).result(binding)
puts "---------------------"
puts "First call to return_block: #{$results[0]}"
puts "Second call to return_block: #{$results[1]}"
I'd expect the output to be
Result of Template is:
---------------------
This should be stored in $results AND sent to output
---------------------
First call to return_block: This should be stored in $results, but not sent to output
Second call to return_block:
This should be stored in $results AND sent to output
And this is exactly what I get when using Erubis
. When I use ERB
, the output I get is -
Result of Template is:
---------------------
This should be stored in $results AND sent to output
---------------------
First call to return_block:
This should be stored in $results AND sent to output
Second call to return_block:
This should be stored in $results AND sent to output
I'm checking this against older ruby versions too, will update with results.
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0