Class: AwesomeAdminLayout::Navigation

Inherits:
Object
  • Object
show all
Defined in:
lib/awesome_admin_layout/navigation.rb,
lib/awesome_admin_layout/navigation/item.rb,
lib/awesome_admin_layout/navigation/brand.rb,
lib/awesome_admin_layout/navigation/divider.rb,
lib/awesome_admin_layout/navigation/flex_divider.rb

Defined Under Namespace

Classes: Brand, Divider, FlexDivider, Item

Constant Summary collapse

@@collection =
{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key = :default, &block) ⇒ Navigation

Returns a new instance of Navigation.



23
24
25
26
# File 'lib/awesome_admin_layout/navigation.rb', line 23

def initialize(key = :default, &block)
  __add_to_collection(key, block)
  @tree = []
end

Instance Attribute Details

#parentObject

Returns the value of attribute parent.



8
9
10
# File 'lib/awesome_admin_layout/navigation.rb', line 8

def parent
  @parent
end

Class Method Details

.find(key) ⇒ Object



13
14
15
16
17
18
19
20
# File 'lib/awesome_admin_layout/navigation.rb', line 13

def find(key)
  return unless @@collection
  return fail "Navigation '#{key}' was not faound!" unless @@collection.has_key? key
  element = @@collection[key]
  code = element.delete(:code)
  element[:object].instance_eval(&code) if code
  element[:object]
end

Instance Method Details

#__has_active_item?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/awesome_admin_layout/navigation.rb', line 54

def __has_active_item?
  __items.any?(&:__active?)
end

#__has_active_nested_item?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/awesome_admin_layout/navigation.rb', line 58

def __has_active_nested_item?
  __items.any?(&:__has_active_nest?)
end

#brand(name, &block) ⇒ Object



28
29
30
31
32
# File 'lib/awesome_admin_layout/navigation.rb', line 28

def brand(name, &block)
  brand = Brand.new(name)
  brand.instance_eval(&block) if block_given?
  @brand = brand
end

#dividerObject



40
41
42
# File 'lib/awesome_admin_layout/navigation.rb', line 40

def divider
  @tree << Divider.new
end

#flex_dividerObject



44
45
46
# File 'lib/awesome_admin_layout/navigation.rb', line 44

def flex_divider
  @tree << FlexDivider.new
end

#item(name, &block) ⇒ Object



34
35
36
37
38
# File 'lib/awesome_admin_layout/navigation.rb', line 34

def item(name, &block)
  item = Item.new(name, parent: self)
  item.instance_eval(&block) if block_given?
  @tree << item
end

#to_sObject



48
49
50
51
52
# File 'lib/awesome_admin_layout/navigation.rb', line 48

def to_s
  __wrapper do
    "#{@brand}<ul>#{__convered_nodes}</ul>"
  end
end