Class: Solargraph::Page

Inherits:
Object
  • Object
show all
Defined in:
lib/solargraph/page.rb

Instance Method Summary collapse

Constructor Details

#initialize(directory = VIEWS_PATH) ⇒ Page

Returns a new instance of Page.



41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/solargraph/page.rb', line 41

def initialize directory = VIEWS_PATH
  directory = VIEWS_PATH if directory.nil? or !File.directory?(directory)
  @render_method = proc { |template, layout: false, locals: {}|
    binder = Binder.new(locals, @render_method)
    if layout
      Tilt::ERBTemplate.new(File.join(directory, 'layout.erb')).render(binder) do
        Tilt::ERBTemplate.new(File.join(directory, "#{template}.erb")).render(binder)
      end
    else
      Tilt::ERBTemplate.new(File.join(directory, "#{template}.erb")).render(binder)
    end
  }
end

Instance Method Details

#render(template, layout: true, locals: {}) ⇒ Object



55
56
57
# File 'lib/solargraph/page.rb', line 55

def render template, layout: true, locals: {}
  @render_method.call(template, layout: layout, locals: locals)
end