Class: Flame::Render
- Inherits:
-
Object
- Object
- Flame::Render
- Defined in:
- lib/flame/render.rb
Overview
Helper for render functionality
Instance Method Summary collapse
-
#initialize(controller, path, options = {}) ⇒ Render
constructor
Create a new instance from controller, by path and with options.
-
#render(cache: true) ⇒ String
Render template with layout.
Constructor Details
#initialize(controller, path, options = {}) ⇒ Render
Create a new instance from controller, by path and with options
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/flame/render.rb', line 27 def initialize(controller, path, = {}) ## Take options for rendering @controller = controller @scope = .delete(:scope) { @controller } @layout = .delete(:layout) { 'layout.*' } ## Options for Tilt Template = .delete(:tilt) ## And get the rest variables to locals @locals = .merge(.delete(:locals) { {} }) ## Find filename @filename = find_file(path) raise Flame::Errors::TemplateNotFoundError.new(controller, path) unless @filename @layout = nil if File.basename(@filename)[0] == '_' end |
Instance Method Details
#render(cache: true) ⇒ String
Render template with layout
49 50 51 52 53 54 55 56 57 |
# File 'lib/flame/render.rb', line 49 def render(cache: true, &) @cache = cache ## Compile Tilt to instance hash return unless @filename tilt = compile_file ## Render Tilt from instance hash with new options layout_render tilt.render(@scope, @locals, &) end |