module Kaffe::Render

Public Instance Methods

find_template(views, name, engine) { |join(views, "#{name}.#{ext}")| ... } click to toggle source
# File lib/kaffe/render.rb, line 35
def find_template(views, name, engine)
  Tilt.mappings.each do |ext, engines|
    yield ::File.join(views, "#{name}.#{ext}")
  end
end
render(template, options: {}, &block) click to toggle source
# File lib/kaffe/render.rb, line 8
def render(template, options: {}, &block)
  local = options.delete(:locals) || {}
  views = options.delete(:views) || settings.views || "./views"
  layout = options[:layout] || settings.layout || :layout

  case template
  when Symbol
    path = nil
    found = false
    find_template(views, template, engine) do |file|
      puts "testing #{file}"
      if found = File.exists?(file)
        path = file
        break
      end
    end
    raise "Could not find Template #{template}" unless found
    t = templates.fetch(path) { Tilt.new path }
    output = t.render(self, &block)

    if layout
      return render(engine, layout, layout: false) { output }
    end
    return output
  end
end
templates() click to toggle source
# File lib/kaffe/render.rb, line 4
def templates
  @templates ||= Tilt::Cache.new
end