Class: Seory::Page

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*conditions, &block) ⇒ Page

Returns a new instance of Page.

Raises:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 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

Instance Attribute Details

#assign_name_accessorsObject (readonly)

Returns the value of attribute assign_name_accessors.



10
11
12
# File 'lib/seory/page.rb', line 10

def assign_name_accessors
  @assign_name_accessors
end

Instance Method Details

#assign_reader(*assign_names) ⇒ Object



31
32
33
34
35
36
37
# 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) ⇒ Object



39
40
41
# File 'lib/seory/page.rb', line 39

def content_for(name)
  @contents[name]
end

#default?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/seory/page.rb', line 49

def default?
  @conditions == :default
end

#define(name, value = nil, &block) ⇒ Object



27
28
29
# File 'lib/seory/page.rb', line 27

def define(name, value = nil, &block)
  @contents[name] = block_given? ? block : value
end

#match?(controller) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
# File 'lib/seory/page.rb', line 43

def match?(controller)
  return true if default?

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