class Seory::Repository
Attributes
helper[RW]
Public Class Methods
extract_label_from_trace(trace)
click to toggle source
# File lib/seory/repository.rb, line 8 def extract_label_from_trace(trace) trace.first.split(':').first end
new()
click to toggle source
# File lib/seory/repository.rb, line 15 def initialize @page_groups = [] end
Public Instance Methods
<<(page_group)
click to toggle source
# 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
default()
click to toggle source
# 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(view_context)
click to toggle source
# File lib/seory/repository.rb, line 27 def lookup(view_context) page = pre_orderd_pages.detect {|pg| pg.match?(view_context.controller) } || default Seory::Runtime.new(page, view_context, default).tap do |runtime| runtime.extend helper if helper end end
Private Instance Methods
clear_page_order_pre_calculation!()
click to toggle source
# File lib/seory/repository.rb, line 52 def clear_page_order_pre_calculation! @pre_orderd_pages = nil @default = nil end
pre_orderd_pages()
click to toggle source
# File lib/seory/repository.rb, line 44 def pre_orderd_pages @pre_orderd_pages ||= @page_groups.sort_by(&:name).flat_map(&:pages) end
remove_old_group!(page_group_name)
click to toggle source
# File lib/seory/repository.rb, line 48 def remove_old_group!(page_group_name) @page_groups.reject! {|pg| pg.name == page_group_name } end