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/