class ActionNav::ItemInstance
Attributes
item[R]
Public Class Methods
new(base, item)
click to toggle source
# File lib/action_nav/item_instance.rb, line 8 def initialize(base, item) @base = base @item = item end
Public Instance Methods
active?()
click to toggle source
# File lib/action_nav/item_instance.rb, line 30 def active? @base.active_path?(*self.path) end
count()
click to toggle source
# File lib/action_nav/item_instance.rb, line 68 def count @item.count ? @count ||= @item.count.call : nil end
description()
click to toggle source
# File lib/action_nav/item_instance.rb, line 38 def description cache(:description) { parse(@item.description) } end
description?()
click to toggle source
# File lib/action_nav/item_instance.rb, line 42 def description? !!description end
icon()
click to toggle source
# File lib/action_nav/item_instance.rb, line 50 def icon cache(:icon) { parse(@item.icon) } end
icon?()
click to toggle source
# File lib/action_nav/item_instance.rb, line 54 def icon? !!icon end
id()
click to toggle source
# File lib/action_nav/item_instance.rb, line 13 def id @item.id end
items()
click to toggle source
# File lib/action_nav/item_instance.rb, line 21 def items @item.children.each_with_object([]) do |(_, item), array| instance = ItemInstance.new(@base, item) unless instance.hidden? array << instance end end end
path()
click to toggle source
# File lib/action_nav/item_instance.rb, line 17 def path @item.path end
title()
click to toggle source
# File lib/action_nav/item_instance.rb, line 34 def title cache(:title) { parse(@item.title, ActiveSupport::Inflector.humanize(@item.id.to_s)) } end
url()
click to toggle source
# File lib/action_nav/item_instance.rb, line 46 def url cache(:url) { parse(@item.url, "/")} end
Private Instance Methods
cache(name, &block)
click to toggle source
# File lib/action_nav/item_instance.rb, line 84 def cache(name, &block) @cache ||= {} if @cache.keys.include?(name) @cache[name] else @cache[name] = block.call end end
parse(item, default = nil)
click to toggle source
# File lib/action_nav/item_instance.rb, line 74 def parse(item, default = nil) if item.is_a?(Proc) @base.controller.instance_eval(&item) elsif item item.to_s else default end end