Sha256: 246d710f82694632c0d80a536181884caf182c9d1571fb36ba6bedaeb82fedb1

Contents?: true

Size: 803 Bytes

Versions: 1

Compression:

Stored size: 803 Bytes

Contents

require 'tilt'

module Helmet
  module Templates
    
    @@template_cache = Tilt::Cache.new
        
    def erb(template, options = {}, locals = {})
     render :erb, template, options, locals
    end

    def render(engine, data, options = {}, locals = {}, &block)
      layout = options.delete(:layout)
      compiled_template = @@template_cache.fetch(data, options) do
        template = Tilt.new(find_template(engine, data), nil, options)
      end      
      output = compiled_template.render nil, locals, &block
      if layout
        return render(engine, layout, options, locals) {output}
      end
      output
    end
    
    private 
    
    def find_template(engine, template)
      filename = "#{template.to_s}.#{engine.to_s}"
      File.join(views_folder, filename)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
helmet-0.0.2 lib/helmet/templates.rb