Sha256: cb63ad51bc2e6487e3a651c43337071986b1bf7fd0406ce9b34d1373c19c0736

Contents?: true

Size: 1.3 KB

Versions: 1

Compression:

Stored size: 1.3 KB

Contents

require "erubis"

module Musterb
  autoload :VERSION,                   "musterb/version"

  autoload :ExtractValues,             "musterb/extract_values"
  autoload :Musterbifier,              "musterb/musterbifier"
  autoload :Extractor,                 "musterb/extractor"
  autoload :BindingExtractor,          "musterb/binding_extractor"
  autoload :HashExtractor,             "musterb/hash_extractor"
  autoload :ObjectExtractor,           "musterb/object_extractor"
  autoload :InstanceVariableExtractor, "musterb/instance_variable_extractor"
  autoload :NullExtractor,             "musterb/null_extractor"
  autoload :Evaluator,                 "musterb/evaluator"
  autoload :Chain,                     "musterb/chain"

  autoload :RailsLocalsExtractor,      "musterb/rails_locals_extractor"
  autoload :TemplateHandler,           "musterb/template_handler"

  def self.to_erb(template, options = {})
    klass = options[:musterbifier_klass] || Musterbifier
    musterbifier = klass.new(template)
    initial_context = options[:initial_context] || 'Musterb::BindingExtractor.new(binding, Musterb::NullExtractor.new)'
    "<% Musterb::Evaluator.new(#{initial_context}).tap do |musterb| %>#{musterbifier.to_erb}<% end %>"
  end

  def self.render(template, values)
    Erubis::Eruby.new(to_erb template).result(values)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
musterb-1.0.0 lib/musterb.rb