just wondering if you could do something like this…
ERB.new( some_erb_string ).result # ‘<%= result %>’ another erb
template
so that way the result could be processed by another ERB.new
just wondering if you could do something like this…
ERB.new( some_erb_string ).result # ‘<%= result %>’ another erb
template
so that way the result could be processed by another ERB.new
On 4/6/07, talkin ruby [email protected] wrote:
just wondering if you could do something like this…
ERB.new( some_erb_string ).result # ‘<%= result %>’ another erb template
so that way the result could be processed by another ERB.new
You are an evil and twisted individual! ![]()
To answer your question, though, sure! ERb can do that.
require ‘erb’
@blah = ‘<%= @not_blah %>’
ERB.new( “blah <%= @blah %>” ).result #=> “blah <%= @not_blah %>”
Blessings,
TwP
@maybe= val.nil? ? true : false
blah <%%= <%= @maybe %> %>
I use this format in generators for rails. I dont know if it is as
clean
looking for short example but for full rhtml pages it works well.
Stephen B. IV
On 4/6/07, Tim P. [email protected] wrote:
On 4/6/07, talkin ruby [email protected] wrote:
just wondering if you could do something like this…
ERB.new( some_erb_string ).result # ‘<%= result %>’ another erb
template
On Sat, 07 Apr 2007 04:07:16 +0900, Tim P. wrote:
To answer your question, though, sure! ERb can do that.
require ‘erb’
@blah = ‘<%= @not_blah %>’
ERB.new( “blah <%= @blah %>” ).result #=> “blah <%= @not_blah %>”
If you really want to be evil and twisted, what’s the smallest self-
reproducing erb program you can write that doesn’t read its own file.
The following solution is illegal:
<%= open(FILE){|f| f.read} %>
–Ken
thanks! that is exactly what I needed!
Ken B. wrote:
reproducing erb program you can write that doesn’t read its own file.
The following solution is illegal:
<%= open(FILE){|f| f.read} %>
I think you mean “what’s the smallest non-trivial self-reproducing erb
program…”:
irb(main):012:0> ERB.new(’ ‘).result
=> " "
irb(main):013:0> ERB.new(’’).result
=> “”

Ken B. wrote:
reproducing erb program you can write that doesn’t read its own file.
The following solution is illegal:
<%= open(FILE){|f| f.read} %>
Drat. This nearly works:
<%=s=";"<%=s=#{s.inspect}#{s}"%>";"<%=s=#{s.inspect}#{s}"%>
The only reason it doesn’t is that ERB barfs on ‘%>’ in a string inside
a <%= %> block, while String#inspect ignores it. This requires…
trickery.
Luckily, we have trickery on hand. When in doubt, reverse the data:
<%=s=">%"}esrever.s{#}tcepsni.s{#=s=%<";";"<%=s=#{s.inspect}#{s.reverse}"%>
That’s 77 characters by my count. 77 characters of pure, twisted, evil

Ken B. [email protected] writes:
ERB.new( “blah <%= @blah %>” ).result #=> “blah <%= @not_blah %>”
=> " "
irb(main):013:0> ERB.new(‘’).result
=> “”Come to think of it, ERB is way too easy a language. You have to define
non-trivial to mean “includes a <% and a %>”
irb(main):001:0> ERB.new(‘>%%<’).result
=> “>%%<”
On Sun, 08 Apr 2007 16:30:11 +0900, Alex Y. wrote:
If you really want to be evil and twisted, what’s the smallest self-
=> “”
Come to think of it, ERB is way too easy a language. You have to define
non-trivial to mean “includes a <% and a %>”
On 4/9/07, Christian N. [email protected] wrote:
Hey, that doesn’t count! It doesn’t contain ‘<%’ or ‘%>’. How about
this:
<%=File.new($FILENAME).readlines%>
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs