class SimpleNavigation::ItemsProvider

Acts as a proxy to navigation items that are passed into the SimpleNavigation::Configuration#items method. It hides the logic for finding items from the Configuration object.

Attributes

provider[R]

Public Class Methods

new(provider) click to toggle source

It accepts the following types of provider:

  • methodname as symbol - the specified method should return the relevant items and has to be available in the view (a helper method)

  • object that responds to :items

  • enumerable object that represents the items

See SimpleNavigation::ItemAdapter for the requirements that need to be fulfilled by the provided items.

# File lib/simple_navigation/core/items_provider.rb, line 18
def initialize(provider)
  @provider = provider
end

Public Instance Methods

items() click to toggle source

Returns the navigation items

# File lib/simple_navigation/core/items_provider.rb, line 23
def items
  if provider.is_a?(Symbol)
    SimpleNavigation.context_for_eval.send(provider)
  elsif provider.respond_to?(:items)
    provider.items
  elsif provider.respond_to?(:each)
    provider
  else
    fail('items_provider either must be a symbol specifying the '                       'helper-method to call, an object with an items-method defined '               'or an enumerable representing the items')
  end
end