Class | SimpleNavigation::ItemAdapter |
In: |
lib/simple_navigation/core/item_adapter.rb
|
Parent: | Object |
This class acts as an adapter to items that are not defined using the DSL in the config/navigation.rb, but directly provided inside the application. When defining the items that way, every item you provide needs to define the following methods:
and optionally
You can also specify your items as a list of hashes. The hashes will be converted to objects automatically. The hashes representing the items obviously must have the keys :key, :name and :url and optionally the keys :options and :items.
See SimpleNavigation::ItemContainer#item for the purpose of these methods.
item | [R] |
# File lib/simple_navigation/core/item_adapter.rb, line 28 def initialize(item) @item = item.instance_of?(Hash) ? to_object(item) : item end
Returns the items (subnavigation) for this item if it responds to :items and the items-collection is not empty. Returns nil otherwise.
# File lib/simple_navigation/core/item_adapter.rb, line 38 def items (@item.respond_to?(:items) && !(@item.items.nil? || @item.items.empty?)) ? @item.items : nil end
Converts this Item into a SimpleNavigation::Item
# File lib/simple_navigation/core/item_adapter.rb, line 43 def to_simple_navigation_item(item_container) SimpleNavigation::Item.new(item_container, key, name, url, options, items) end