Module: FoundationNavigation::Builder

Included in:
Divider, Dropdown, MenuGroup, MenuItem, TitleArea, Topbar
Defined in:
lib/foundation-navigation/builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



47
48
49
50
51
52
53
# File 'lib/foundation-navigation/builder.rb', line 47

def method_missing(method, *args, &block)
  if %i(li ul nav div h1 a span section).include? method
    add_node(method, *args, &block)
  else
    @self_before_instance_eval.send(method, *args, &block)
  end
end

Instance Attribute Details

#nodeObject

Returns the value of attribute node.



5
6
7
# File 'lib/foundation-navigation/builder.rb', line 5

def node
  @node
end

Instance Method Details

#build_subtree(klass, *args, &block) ⇒ Object



39
40
41
# File 'lib/foundation-navigation/builder.rb', line 39

def build_subtree(klass, *args, &block)
  @node.children << klass.new(*args, &block).node
end

#dividerObject



31
32
33
# File 'lib/foundation-navigation/builder.rb', line 31

def divider
  build_subtree(FoundationNavigation::Divider)
end


27
28
29
# File 'lib/foundation-navigation/builder.rb', line 27

def dropdown(*args, &block)
  build_subtree(FoundationNavigation::Dropdown, *args, &block)
end

#left(&block) ⇒ Object



7
8
9
10
11
# File 'lib/foundation-navigation/builder.rb', line 7

def left(&block)
  @node.children << FoundationNavigation::MenuGroup.new(
    orientation: 'left', &block
  ).node
end


19
20
21
# File 'lib/foundation-navigation/builder.rb', line 19

def menu_group(*args, &block)
  @node.children << FoundationNavigation::MenuGroup.new(*args, &block).node
end


35
36
37
# File 'lib/foundation-navigation/builder.rb', line 35

def menu_item(*args, &block)
  build_subtree(FoundationNavigation::MenuItem, *args, &block)
end

#right(&block) ⇒ Object



13
14
15
16
17
# File 'lib/foundation-navigation/builder.rb', line 13

def right(&block)
  @node.children << FoundationNavigation::MenuGroup.new(
    orientation: 'right', &block
  ).node
end

#title_area(*args, &block) ⇒ Object



23
24
25
# File 'lib/foundation-navigation/builder.rb', line 23

def title_area(*args, &block)
  build_subtree(FoundationNavigation::TitleArea, *args, &block)
end

#to_sObject



43
44
45
# File 'lib/foundation-navigation/builder.rb', line 43

def to_s
  @node.to_s
end