On 3/11/08, ara howard <ara.t.howard / gmail.com> wrote: > > thought some here might appreciate this > > http://drawohara.com/post/28514698 > > kind regards > > a @ http://codeforpeople.com/ No need for Object#context class View def initialize template @template = template end def render locals = {} context = binding locals.each do |k, v| var = k value = "ObjectSpace._id2ref #{ v.object_id }" definition = "#{ var } = #{ value }" eval definition, context end double_quoted_heredoc = ['<<__template__', @template, '__template__'].join("\n") eval double_quoted_heredoc, context end end view = View.new '<body> #{ x + y } </body>' puts view.render(:x => 40, :y => 2) #=> <body> 42 </body> Works just as well. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/