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