Issue #11575 has been updated by Rohit Kuruvilla.


Tried in on 1.8.7, same results. Is there a spec for eRuby somewhere that I can refer to?

----------------------------------------
Bug #11575: Blocks in ERB don't work as intended? 
https://bugs.ruby-lang.org/issues/11575#change-54399

* Author: Rohit Kuruvilla
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
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. 



-- 
https://bugs.ruby-lang.org/