Project

General

Profile

ActionsLike0

Feature #11575

closed

Blocks in ERB don't work as intended?

Added by rohitpaulk (Paul Kuruvilla) about 9 years ago. Updated over 7 years ago.

Status:
Rejected
Target version:
[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.

#1

Updated by rohitpaulk (Paul Kuruvilla) about 9 years ago

  • Subject changed from ERB doesn't work as intended? to Blocks in ERB don't work as intended?
#3

Updated by nobu (Nobuyoshi Nakada) about 9 years ago

  • Status changed from Open to Third Party's Issue

Updated by nagachika (Tomoyuki Chikanaga) about 9 years ago

  • Status changed from Third Party's Issue to Assigned
  • Assignee set to seki (Masatoshi Seki)

Updated by hsbt (Hiroshi SHIBATA) over 7 years ago

  • Assignee changed from seki (Masatoshi Seki) to k0kubun (Takashi Kokubun)
  • Target version set to 2.5

Updated by k0kubun (Takashi Kokubun) over 7 years ago

  • Tracker changed from Bug to Feature
  • Status changed from Assigned to Rejected
ActionsLike0

Also available in: Atom PDF