Class: Seory::Repository

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRepository

Returns a new instance of Repository.



15
16
17
# File 'lib/seory/repository.rb', line 15

def initialize
  @page_groups = []
end

Instance Attribute Details

#helperObject

Returns the value of attribute helper.



13
14
15
# File 'lib/seory/repository.rb', line 13

def helper
  @helper
end

Class Method Details

.extract_label_from_trace(trace) ⇒ Object



8
9
10
# File 'lib/seory/repository.rb', line 8

def extract_label_from_trace(trace)
  trace.first.split(':').first
end

Instance Method Details

#<<(page_group) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/seory/repository.rb', line 19

def <<(page_group)
  remove_old_group!(page_group.name)

  @page_groups << page_group

  clear_page_order_pre_calculation!
end

#defaultObject



35
36
37
38
39
40
# File 'lib/seory/repository.rb', line 35

def default
  @default ||=
    @page_groups.map(&:default).compact.tap {|defaults|
      raise DuplicateDefault if defaults.size > 1
    }.first
end

#lookup(controller) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/seory/repository.rb', line 27

def lookup(controller)
  page = pre_orderd_pages.detect {|pg| pg.match?(controller) } || default

  Seory::Runtime.new(page, controller, default).tap do |runtime|
    runtime.extend helper if helper
  end
end