[#80974] [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit — ko1@...
Issue #13517 has been updated by ko1 (Koichi Sasada).
4 messages
2017/05/02
[#81024] Re: [Ruby trunk Feature#13517] [PATCH] reduce rb_mutex_t size from 160 to 80 bytes on 64-bit
— SASADA Koichi <ko1@...>
2017/05/07
sorry for late response.
[#80996] [Ruby trunk Feature#13544] Allow loading an ISeqs sequence directly from a C extension without requiring buffer is in an RVALUE — sam.saffron@...
Issue #13544 has been reported by sam.saffron (Sam Saffron).
3 messages
2017/05/04
[#81016] [Ruby trunk Bug#13526] Segmentation fault at 0x0055c2e58e8920 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux] — s.wanabe@...
Issue #13526 has been updated by wanabe (_ wanabe).
3 messages
2017/05/07
[#81048] Re: [ruby-cvs:65788] normal:r58614 (trunk): rb_execution_context_t: move stack, stack_size and cfp from rb_thread_t — SASADA Koichi <ko1@...>
It causes compile error on raspi 3.
3 messages
2017/05/09
[#81201] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle — "U.NAKAMURA" <usa@...>
Hi, Eric
4 messages
2017/05/16
[#81202] Re: [ruby-cvs:65935] normal:r58761 (trunk): test/test_extilibs.rb: do not check the existence of fiddle
— Eric Wong <normalperson@...>
2017/05/16
"U.NAKAMURA" <usa@garbagecollect.jp> wrote:
[#81427] Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534) — SASADA Koichi <ko1@...>
Hi,
6 messages
2017/05/28
[#81428] Re: Fwd: [ruby-changes:46809] normal:r58924 (trunk): test for IO.copy_stream CPU usage (r58534)
— Eric Wong <normalperson@...>
2017/05/28
SASADA Koichi <ko1@atdot.net> wrote:
[ruby-core:81226] [Ruby trunk Feature#11575][Rejected] Blocks in ERB don't work as intended?
From:
takashikkbn@...
Date:
2017-05-18 16:08:27 UTC
List:
ruby-core #81226
Issue #11575 has been updated by k0kubun (Takashi Kokubun).
Tracker changed from Bug to Feature
Status changed from Assigned to Rejected
> Whitespace isn't the issue here
That's wrong. Definitely whitespace matters. If you change to use a following template, you'll get an expected result and ERB and Erubis will work in the same way.
~~~ 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" %><% } %>
~~~
At least for me, this is not a bug but a feature request. I couldn't find any test that ensures the return value for the case that a part of template is captured by a block and it's called. You may be confused with ActionView's features available via yield.
And the original behavior you reported is caused by the fact that one String object is shared by all lines generated from ERB's "<%=". That's a very reasonable thing as both ERB and Erubis do.
It doesn't make sense to rely on the return value of internal code that touches temporal state of ERB. And a suggested template (embedding meaningless '<% "foo" %>') doesn't seem a reasonable real use case. As one of the ERB maintainers, I reject this proposal.
----------------------------------------
Feature #11575: Blocks in ERB don't work as intended?
https://bugs.ruby-lang.org/issues/11575#change-64882
* Author: rohitpaulk (Rohit Kuruvilla)
* Status: Rejected
* Priority: Normal
* Assignee: k0kubun (Takashi Kokubun)
* Target version: 2.5
----------------------------------------
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/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>