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:

  • name (Symbol) (defaults to: :default)

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

Returns:



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:



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.

Parameters:

  • name (Symbol) (defaults to: :default)

    A name for this menu.

  • formatter (Kin::Nav::Formatters::Basic) (defaults to: nil)

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

  • blk (Block)

    A block for setting up the menu.

Returns:



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