Class: Trestle::Navigation
- Inherits:
-
Object
- Object
- Trestle::Navigation
show all
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/trestle/navigation.rb,
lib/trestle/navigation/item.rb,
lib/trestle/navigation/block.rb,
lib/trestle/navigation/group.rb
Defined Under Namespace
Classes: Block, Group, Item, NullGroup
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(items) ⇒ Navigation
Returns a new instance of Navigation.
12
13
14
|
# File 'lib/trestle/navigation.rb', line 12
def initialize(items)
@items = items
end
|
Instance Attribute Details
#items ⇒ Object
Returns the value of attribute items.
10
11
12
|
# File 'lib/trestle/navigation.rb', line 10
def items
@items
end
|
Class Method Details
.build(blocks) ⇒ Object
33
34
35
|
# File 'lib/trestle/navigation.rb', line 33
def self.build(blocks)
new(blocks.map(&:items).flatten)
end
|
Instance Method Details
#by_group ⇒ Object
16
17
18
|
# File 'lib/trestle/navigation.rb', line 16
def by_group
Hash[stable_sort(items.group_by(&:group)).map { |group, items| [group, stable_sort(items)] }]
end
|
#each(&block) ⇒ Object
20
21
22
|
# File 'lib/trestle/navigation.rb', line 20
def each(&block)
by_group.each(&block)
end
|
#first ⇒ Object
24
25
26
27
|
# File 'lib/trestle/navigation.rb', line 24
def first
sorted = by_group.values
sorted.first.first if sorted.any?
end
|
#visible(context) ⇒ Object
29
30
31
|
# File 'lib/trestle/navigation.rb', line 29
def visible(context)
self.class.new(items.select { |item| item.visible?(context) })
end
|