Class: Radmin::AdminUI::NavTab

Inherits:
Array
  • Object
show all
Defined in:
lib/radmin/admin_ui.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ NavTab

Returns a new instance of NavTab.



12
13
14
15
# File 'lib/radmin/admin_ui.rb', line 12

def initialize(name)
  @name = name
  @items = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



10
11
12
# File 'lib/radmin/admin_ui.rb', line 10

def name
  @name
end

Instance Method Details

#<<(*args) ⇒ Object Also known as: add



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/radmin/admin_ui.rb', line 25

def <<(*args)
  options = args.extract_options!
  item = args.first
  raise DuplicateTabNameError.new("duplicate tab name '#{item.name}'") if self[item.name]
  item.tab = self if item.respond_to?(:tab=)
  if options.empty?
    super(item)
  else
    options.symbolize_keys!
    before = options.delete(:before)
    after = options.delete(:after)
    tab_name = before || after
    if self[tab_name]
      _index = index(self[tab_name])
      _index += 1 unless before
      insert(_index, item)
    else
      super(item)
    end
  end
end

#[](id) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/radmin/admin_ui.rb', line 17

def [](id)
  unless id.kind_of? Fixnum
    self.find {|subnav_item| subnav_item.name.to_s.titleize == id.to_s.titleize }
  else
    super
  end
end

#add_item(*args) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/radmin/admin_ui.rb', line 49

def add_item(*args)
  options = args.extract_options!
  options.symbolize_keys!
  before = options.delete(:before)
  after = options.delete(:after)
  tab_name = before || after
  if self[tab_name]
    _index = index(self[tab_name])
    _index += 1 unless before
    insert(_index, NavSubItem.new(args.first, args.second))
  else
    add NavSubItem.new(args.first, args.second)
  end
end

#visible?(user) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/radmin/admin_ui.rb', line 64

def visible?(user)
  any? { |sub_item| sub_item.visible?(user) }
end