class LB::Project::View

Base view

Attributes

site[R]

Public Class Methods

setup(view, layout = 'main') click to toggle source
# File lib/lb/project/view.rb, line 9
def self.setup(view, layout = 'main')
  view.setting :paths, [LB::Project.template_path]
  view.setting :layout, layout
end

Public Instance Methods

render(locals = {}) click to toggle source
# File lib/lb/project/view.rb, line 28
def render(locals = {})
  render_with(site, self, locals)
end
render_with(site, page, locals = {}) click to toggle source
# File lib/lb/project/view.rb, line 32
def render_with(site, page, locals = {})
  call(with_context(site, page, locals))
end
view(name, overrides = {}) click to toggle source
# File lib/lb/project/view.rb, line 21
def view(name, overrides = {})
  LB::Project::View.view_registry[name]
                   .new
                   .with(overrides.merge(site: site))
                   .render
end
with(options) click to toggle source
# File lib/lb/project/view.rb, line 16
def with(options)
  @site = options.fetch(:site, LB::Project.settings.site.new)
  self
end
with_context(site, page, locals = {}) click to toggle source
# File lib/lb/project/view.rb, line 36
def with_context(site, page, locals = {})
  {
    context: ::Struct.new(:site, :page).new(site, page),
    locals: locals
  }
end