Class: LiquidView
- Inherits:
-
Object
- Object
- LiquidView
- Defined in:
- lib/extras/liquid_view.rb
Overview
LiquidView is a action view extension class. You can register it with rails and use liquid as an template system for .liquid files
Example
ActionView::Base::register_template_handler :liquid, LiquidView
Instance Method Summary collapse
- #compilable? ⇒ Boolean
-
#initialize(action_view) ⇒ LiquidView
constructor
A new instance of LiquidView.
- #render(template, local_assigns_for_rails_less_than_2_1_0 = nil) ⇒ Object
Constructor Details
#initialize(action_view) ⇒ LiquidView
Returns a new instance of LiquidView.
9 10 11 |
# File 'lib/extras/liquid_view.rb', line 9 def initialize(action_view) @action_view = action_view end |
Instance Method Details
#compilable? ⇒ Boolean
36 37 38 |
# File 'lib/extras/liquid_view.rb', line 36 def compilable? false end |
#render(template, local_assigns_for_rails_less_than_2_1_0 = nil) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/extras/liquid_view.rb', line 14 def render(template, local_assigns_for_rails_less_than_2_1_0 = nil) @action_view.controller.headers["Content-Type"] ||= 'text/html; charset=utf-8' assigns = @action_view.assigns.dup # template is a Template object in Rails >=2.1.0, a source string previously. if template.respond_to? :source source = template.source local_assigns = template.locals else source = template local_assigns = local_assigns_for_rails_less_than_2_1_0 end if content_for_layout = @action_view.instance_variable_get("@content_for_layout") assigns['content_for_layout'] = content_for_layout end assigns.merge!(local_assigns) liquid = Liquid::Template.parse(source) liquid.render(assigns, :filters => [@action_view.controller.master_helper_module], :registers => {:action_view => @action_view, :controller => @action_view.controller}) end |