Module: Kin::Nav

Defined in:
lib/kin/nav.rb,
lib/kin/nav/builder.rb,
lib/kin/nav/formatters.rb,
lib/kin/nav/helper_mixin.rb

Overview

The Nav class is used when creating main navigation navs. Typically this is the “Sets”, “Search”, “Your Account”, etc nav, but is also used for the sets subnav.

Defined Under Namespace

Modules: Formatters, Helper Classes: Builder, Item, ItemBuilder, ItemMatcher, Menu, MissingResource

Class Method Summary collapse

Class Method Details

.get(name = :default) ⇒ Kin::Nav::Menu

Returns menu instance identified by name.



53
54
55
56
# File 'lib/kin/nav.rb', line 53

def self.get(name = :default)
  @registry ||= {}
  @registry[name]
end

.register(menu) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Puts a menu instance into the registry.



66
67
68
69
# File 'lib/kin/nav.rb', line 66

def self.register(menu)
  @registry ||= {}
  @registry[menu.name] = menu
end

.reset!Object

Resets the registry.



76
77
78
79
# File 'lib/kin/nav.rb', line 76

def self.reset!
  @registry = {}
  nil
end

.setup(name = :default, formatter = nil, &blk) ⇒ Kin::Nav::Menu

Sets up a new menu instance. See Showcase#setup_navs! for examples.



32
33
34
35
36
37
38
39
# File 'lib/kin/nav.rb', line 32

def self.setup(name = :default, formatter = nil, &blk)
  menu = Builder.new(name, formatter).build(&blk)
  menu.freeze
  menu.items.freeze
  menu.items.each { |i| i.freeze }
  register(menu)
  menu
end