class ActionNav::Base
Attributes
active_paths[R]
controller[R]
The controller that initialized this navigation.
@return [ActionController::Base]
Public Class Methods
item(id, &block)
click to toggle source
Add a new item to this navigation
@param id [Symbol] @return [ActionNav::Item]
# File lib/action_nav/base.rb, line 57 def self.item(id, &block) item = Item.new(nil, id) item.dsl(&block) if block_given? items[id] = item end
items()
click to toggle source
Return all items for this navigation
@return [Hash]
# File lib/action_nav/base.rb, line 66 def self.items @items ||= {} end
new(controller)
click to toggle source
Initialize a new navigation
@param controller [ActionController::Base] @return [ActionNav::Base]
# File lib/action_nav/base.rb, line 12 def initialize(controller) @controller = controller @active_paths = [] end
Public Instance Methods
activate(*parts)
click to toggle source
Add an active navigation by passing the full path to active item.
# File lib/action_nav/base.rb, line 38 def activate(*parts) @active_paths.push(parts) end
Also aliased as: active
active_path?(*parts)
click to toggle source
Is the given active path?
@return [Boolean]
# File lib/action_nav/base.rb, line 46 def active_path?(*parts) @active_paths.any? do |path| a = path.size.times.map { |i| path[0, path.size - i] } a.include?(parts) end end
items()
click to toggle source
Return a full list of items for this instance as instances.
@return [Array<ActionNav::ItemInstance>]
# File lib/action_nav/base.rb, line 27 def items @items ||= self.class.items.each_with_object([]) do |(key, item), array| instance = ItemInstance.new(self, item) unless instance.hidden? array << instance end end end