class Juggalo::Page

Attributes

components[R]
template[R]

Public Class Methods

new(layout, loader) click to toggle source
# File lib/juggalo/page.rb, line 5
def initialize(layout, loader)
  @layout = layout
  @loader = loader
end

Public Instance Methods

compile() click to toggle source
# File lib/juggalo/page.rb, line 10
def compile
  @layout.regions = compose
  @layout.render
end

Private Instance Methods

compose() click to toggle source
# File lib/juggalo/page.rb, line 17
def compose
  @components ||= @loader.load
  @regions    ||= @components.reduce({}) do |regions, component|
    regions.tap do |r|
      if r[component.location].nil?
        r[component.location] = [component]
      else
        r[component.location] << component
      end
    end
  end
end