module Sinatra::Templates

def render_erb(template, data, options, &block)

def render_erb(template, data, options, &block)
  data = data.call if data.kind_of? Proc
  instance = ::ERB.new(data)
  locals = options[:locals] || {}
  locals_assigns = locals.to_a.collect { |k,v| "#{k} = locals[:#{k}]" }
  src = "#{locals_assigns.join("\n")}\n#{instance.src}"
  eval src, binding, '(__ERB__)', locals_assigns.length + 1
  instance.result(binding)
end