On Sun, 08 Apr 2007 16:30:11 +0900, Alex Young wrote: > Ken Bloom wrote: >> On Sat, 07 Apr 2007 04:07:16 +0900, Tim Pease wrote: >> >>> On 4/6/07, talkin ruby <rubytalk.heidmotron / gmail.com> 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 %>" >> >> 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} %> > 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 > => "" Come to think of it, ERB is way too easy a language. You have to define non-trivial to mean "includes a <% and a %>" -- Ken Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/