class Hiptest::Renderer

Attributes

rendered[R]

Public Class Methods

new(context) click to toggle source
# File lib/hiptest-publisher/renderer.rb, line 20
def initialize(context)
  @rendered = {}
  @context = context
  @template_finder = context.template_finder
end
render(node, context) click to toggle source
# File lib/hiptest-publisher/renderer.rb, line 11
def self.render(node, context)
  renderer = self.new(context)
  context.renderer_addons.each do |addon|
    renderer.singleton_class.include(addon)
  end
  renderer.walk_node(node)
  renderer.rendered[node]
end

Public Instance Methods

call_node_walker(node) click to toggle source
Calls superclass method Hiptest::Nodes::Walker#call_node_walker
# File lib/hiptest-publisher/renderer.rb, line 26
def call_node_walker(node)
  if node.is_a? Hiptest::Nodes::Node
    @rendered_children = {}

    node.children.each do |name, child| 
      @rendered_children[name] = @rendered[child]

      @rendered_children[name].uniq! if name == :actionwords && @rendered_children[name].is_a?(Array)
    end
    @rendered[node] = render_node(node, super(node))
  elsif node.is_a? Array
    @rendered[node] = node.map {|item| @rendered[item]}
  else
    @rendered[node] = node
  end
end
render_node(node, render_context) click to toggle source
# File lib/hiptest-publisher/renderer.rb, line 43
def render_node(node, render_context)
  render_context ||= {}
  render_context[:node] = node
  render_context[:rendered_children] = @rendered_children
  render_context[:context] = @context

  @template_finder.get_compiled_handlebars(node.kind).call(render_context)
end