Class: Houston::Extensions::Navigation

Inherits:
Object
  • Object
show all
Defined in:
lib/houston/boot/extensions/navigation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeNavigation

Returns a new instance of Navigation.



10
11
12
# File 'lib/houston/boot/extensions/navigation.rb', line 10

def initialize
  @links = Concurrent::Array.new
end

Instance Attribute Details

Returns the value of attribute links.



8
9
10
# File 'lib/houston/boot/extensions/navigation.rb', line 8

def links
  @links
end

Instance Method Details

#[](slug) ⇒ Object



33
34
35
# File 'lib/houston/boot/extensions/navigation.rb', line 33

def [](slug)
  links.find { |link| link.slug == slug }
end


14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/houston/boot/extensions/navigation.rb', line 14

def add_link(content, &path_block)
  if content.is_a?(Symbol)
    slug = content
    content = slug.to_s.titleize
  else
    slug = content.underscore.to_sym
  end
  Chain(AbilityBlock, AcceptsName, Link.new(slug, content).tap do |link|
    link.instance_variable_set :@path_block, path_block
    @links.push link
  end)
end

#slugsObject



29
30
31
# File 'lib/houston/boot/extensions/navigation.rb', line 29

def slugs
  links.map(&:slug)
end