class Mindmap::Renderer

Renders a view file from either the library views or the project views with a binding

Attributes

view[R]

Public Class Methods

new(view) click to toggle source
# File lib/mindmap/renderer.rb, line 18
def initialize(view)
  @view = view
end
render(view, binding) click to toggle source
# File lib/mindmap/renderer.rb, line 9
def self.render(view, binding)
  renderer_instance(view).render(binding)
end
renderer_instance(view) click to toggle source
# File lib/mindmap/renderer.rb, line 13
def self.renderer_instance(view)
  @renderers ||= {}
  @renderers[view] ||= new(view)
end

Public Instance Methods

render(binding) click to toggle source
# File lib/mindmap/renderer.rb, line 22
def render(binding)
  erb.result(binding)
end

Private Instance Methods

erb() click to toggle source
# File lib/mindmap/renderer.rb, line 30
def erb
  @erb ||= ERB.new(view_content)
end
view_content() click to toggle source
# File lib/mindmap/renderer.rb, line 34
def view_content
  raise(StandardError, "#{view} not found") unless File.exist?(view_path)
  File.read(view_path)
end
view_path() click to toggle source
# File lib/mindmap/renderer.rb, line 39
def view_path
  @view_path ||= File.expand_path("./nodes/#{view}.erb", Dir.pwd)
end