class Easy::Configuration::Menu

Attributes

caption[W]
visibility[RW]

Public Class Methods

new() click to toggle source
# File lib/easy/configuration/menu.rb, line 8
def initialize
  @items   = {}
  @caption = nil
end

Public Instance Methods

caption() click to toggle source
# File lib/easy/configuration/menu.rb, line 24
def caption
  case @caption
  when String
    @caption
  when NilClass
    ''
  else
    I18n.t(@caption)
  end
end
items() click to toggle source
# File lib/easy/configuration/menu.rb, line 53
def items
  @items.values
end
title(key, options = {}, &block) click to toggle source
# File lib/easy/configuration/menu.rb, line 47
def title(key, options = {}, &block)
  parent = options.delete(:parent)

  add(key, MenuTitle.new(options, &block), parent)
end
visible?(current_user) click to toggle source
# File lib/easy/configuration/menu.rb, line 13
def visible?(current_user)
  case @visibility
  when Proc
    @visibility.call(current_user)
  when NilClass
    true
  else
    !!@visibility
  end
end

Private Instance Methods

add(key, menu_item, parent = nil) click to toggle source
# File lib/easy/configuration/menu.rb, line 59
def add(key, menu_item, parent = nil)
  if parent && @items[parent.to_s]
    @items[parent.to_s].children[key.to_s] = menu_item
  else
    @items[key.to_s] = menu_item
  end
end