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.

Parameters:

  • (defaults to: :default)

    The name of the menu to return. If no name is given, the default menu will be returned.

Returns:

  • Returns the Menu instance identified by name.

API:

  • public



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.

Parameters:

  • Registers a menu.

API:

  • private



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.

API:

  • public



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.

Parameters:

  • (defaults to: :default)

    A name for this menu.

  • (defaults to: nil)

    A custom formatter to use when rendering the menu as HTML.

  • A block for setting up the menu.

Returns:

  • Returns the menu instance which was set up.

API:

  • public



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