Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
require 'liquid' require 'extras/liquid_view' # LiquidView is a action view extension class. You can register it with rails # and use liquid as an template system for .liquid files # # PATCHED to work with Rails 2.2.2 and Liquid Gem 1.9.0 # see here; http://groups.google.com/group/liquid-templates/msg/b58ebd9b358e4672 # -- matthewhutchinson.net class LiquidView def initialize(action_view) @action_view = action_view end def self.call(template) "LiquidView.new(self).render(template, local_assigns)" end 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 = local_assigns_for_rails_less_than_2_1_0 local_assigns = template.locals if template.respond_to? :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 def compilable? false end end # register template handler ActionView::Template.register_template_handler(:liquid, LiquidView)
This paste will be private.
From the Design Piracy series on my blog: