class Erubis::Engine

def process_proc(proc_obj, context=nil, filename=nil)

#
# context may be Binding, Hash, or Object.
# helper method evaluate Proc object with contect object.
#
def process_proc(proc_obj, context=nil, filename=nil)
  if context.is_a?(Binding)
    filename ||= '(erubis)'
    return eval(proc_obj, context, filename)
  else
    context = Context.new(context) if context.is_a?(Hash)
    return context.instance_eval(&proc_obj)
  end
end