class Molecule::Renderer

Public Instance Methods

find_template(path, locals) click to toggle source

turn off partial renaming

# File lib/molecule/renderer.rb, line 56
def find_template(path, locals)
  prefixes = path.include?(?/) ? [] : @lookup_context.prefixes
  @lookup_context.find_template(path, prefixes, false, locals, @details)
end
molecule_force_set_member(object, member, value) click to toggle source
# File lib/molecule/renderer.rb, line 47
def molecule_force_set_member object, member, value
  if object.respond_to?("#{member}=")
    object.public_send("#{member}=", value)
  else
    object.instance_variable_set("@#{member}", value)
  end
end
molecule_prefix() click to toggle source

path for current molecule

# File lib/molecule/renderer.rb, line 71
def molecule_prefix
  "#{@options[:molecule].to_s}/views"
end
molecule_template_path() click to toggle source

molecules path

# File lib/molecule/renderer.rb, line 66
def molecule_template_path
  Rails.root.join('app', 'molecules')
end
molecule_view_paths() click to toggle source
# File lib/molecule/renderer.rb, line 61
def molecule_view_paths
  ::ActionView::PathSet.new([molecule_template_path])
end
partial_path(object = nil, view = nil) click to toggle source

default template entrypoint

# File lib/molecule/renderer.rb, line 76
def partial_path object = nil, view = nil
  'index'
end
render(context, &block) click to toggle source

narrow template lookup path to the provided molecule

Calls superclass method
# File lib/molecule/renderer.rb, line 9
def render context, &block
  @@stack ||= ::Molecule::Stack.new
  with_member_override(:view_paths, molecule_view_paths) do
    with_member_override(:prefixes, [molecule_prefix]) do
      with_dependency_check(@options[:molecule]) do
        with_new_molecule(@options[:molecule]) do
          result = super(@options[:molecule], context, block).body
        end
      end
    end
  end
end
with_dependency_check(name) { || ... } click to toggle source
# File lib/molecule/renderer.rb, line 31
def with_dependency_check name, &block
  if !@@stack.empty? && ::Molecule.config.verify_children?
    unless @@stack.current_molecule.has_child?(name.to_s)
      raise "requested molecule (#{name}) is not configured as a child of current molecule (#{@@stack.current_molecule.name})"
    end
  end
  yield
end
with_member_override(member, override) { || ... } click to toggle source

override a member of lookup_context

# File lib/molecule/renderer.rb, line 23
def with_member_override member, override, &block
  old_value = @lookup_context.public_send(member)
  molecule_force_set_member(@lookup_context, member, override)
  yield
ensure
  molecule_force_set_member(@lookup_context, member, old_value)
end
with_new_molecule(name) { || ... } click to toggle source
# File lib/molecule/renderer.rb, line 40
def with_new_molecule name
  @@stack.push(::Molecule::Molecule.read(name))
  yield
ensure
  @@stack.pop
end