Sha256: a74e80b7e5202976a788874efbf1e08990d8e1d53282de6a64fa91b0d5935845

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require "erubis"

module Musterb
  autoload :VERSION,                   "musterb/version"

  autoload :ExtractValues,             "musterb/extract_values"
  autoload :Musterbifier,              "musterb/musterbifier"
  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::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-0.1.2 lib/musterb.rb