Module: SemanticNavigation::Renderers::MixIn::ActsAsBreadcrumb

Included in:
BreadCrumb, TwitterBootstrap3::Breadcrumb, TwitterBootstrap::Breadcrumb
Defined in:
lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb

Instance Method Summary collapse

Instance Method Details

#render_leaf(object) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb', line 36

def render_leaf(object)
  show = !until_level.nil? ? object.level <= until_level+1 : true
  show &= !object.skip?(self.name)
  return nil unless show

  leaf(object)
end

#render_navigation(object) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb', line 6

def render_navigation(object)
  return '' unless object.render_if
  navigation(object) do
    while !object.class.in?([SemanticNavigation::Core::Leaf, NilClass]) &&
          from_level.to_i > object.level
      object = object.sub_elements.find(&:active)
    end
    unless object.class.in?([SemanticNavigation::Core::Leaf, NilClass])
      active_element = object.sub_elements.find{|e| e.active}
      active_element.render(self) if active_element
    end
  end
end

#render_node(object) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/semantic_navigation/renderers/mix_in/acts_as_breadcrumb.rb', line 20

def render_node(object)
  active_element = object.sub_elements.find{|e| e.active}
  if active_element && !active_element.id.in?([except_for].flatten) && active_element.render_if
    render_element = active_element.render(self)
  end
  if render_element
    if object.skip?(self.name)
      render_element
    else
      node(object){ render_element }
    end
  else
    render_leaf(object)
  end
end