Sha256: 98e625f8a88b288b1f1f01a4ba645d71ba3c80e444ec0490890558e5b358e89c

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'musterb'
require 'action_view'

class Musterb::TemplateHandler < Musterb::Musterbifier
  def render_partial(partial)
    "<%= render :partial => '#{partial}', :locals => {:initial_context => musterb.context} %>"
  end

  def text_without_escaping(tokens)
    "<%= #{tokens}.html_safe %>"
  end

  def text_with_escaping(tokens)
    "<%= #{tokens} %>"
  end

  def self.build_initial_context(locals)
    "Musterb::RailsLocalsExtractor.new(#{locals.inspect}, binding, Musterb::InstanceVariableExtractor.new(self, Musterb::NullExtractor.new))"
  end

  def self.initial_context(initial_context)
    Musterb::ExtractValues.new_context(initial_context)
  end

  def self.call(template)
    initial_context = template.locals.include?("initial_context") ? "Musterb::TemplateHandler.initial_context(initial_context)" : build_initial_context(template.locals.map(&:to_s))
    erb = Musterb.to_erb(template.source, :musterbifier_klass => self, :initial_context => initial_context)
    klass = ActionView::Template::Handlers::ERB
    klass.erb_implementation.new(erb, :trim => (klass.erb_trim_mode == "-")).src
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
musterb-1.0.0 lib/musterb/template_handler.rb