class Seory::Page

Attributes

assign_name_accessors[R]

Public Class Methods

new(*conditions, &block) click to toggle source
# File lib/seory/page.rb, line 12
def initialize(*conditions, &block)
  @conditions  =
    if block_given?
      [Condition::Block.new(block)]
    elsif conditions.first == :default
      :default
    else
      conditions.map {|condition| Seory::Condition[condition] }
    end

  raise EmptyCondition if @conditions.blank?

  @contents, @assign_name_accessors = {}, []
end

Public Instance Methods

assign_reader(*assign_names) click to toggle source
# File lib/seory/page.rb, line 31
def assign_reader(*assign_names)
  if (taken = Seory::CONTENTS & assign_names).size > 0
    raise AccessorNameTaken, taken.join(', ')
  end

  assign_name_accessors.concat(assign_names)
end
content_for(name) click to toggle source
# File lib/seory/page.rb, line 39
def content_for(name)
  @contents[name]
end
default?() click to toggle source
# File lib/seory/page.rb, line 49
def default?
  @conditions == :default
end
define(name, value = nil, &block) click to toggle source
# File lib/seory/page.rb, line 27
def define(name, value = nil, &block)
  @contents[name] = block_given? ? block : value
end
match?(controller) click to toggle source
# File lib/seory/page.rb, line 43
def match?(controller)
  return true if default?

  @conditions.any? {|condition| condition.match?(controller) }
end