Class SimpleNavigation::Renderer::Base
In: lib/simple_navigation/rendering/renderer/base.rb
Parent: Object

This is the base class for all renderers.

A renderer is responsible for rendering an ItemContainer and its containing items to HTML.

Methods

Attributes

adapter  [R] 
options  [R] 

Public Instance methods

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 21
      def expand_all?
        !!options[:expand_all]
      end

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 33
      def include_sub_navigation?(item)
        consider_sub_navigation?(item) && expand_sub_navigation?(item)
      end

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 25
      def level
        options[:level] || :all
      end

Renders the specified ItemContainer to HTML.

When implementing a renderer, please consider to call include_sub_navigation? to determin whether an item‘s sub_navigation should be rendered or not.

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 46
      def render(item_container)
        raise 'subclass responsibility'
      end

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 37
      def render_sub_navigation_for(item)
        item.sub_navigation.render(self.options)
      end

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 29
      def skip_if_empty?
        !!options[:skip_if_empty]
      end

Protected Instance methods

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 52
      def consider_sub_navigation?(item)
        return false if item.sub_navigation.nil?
        case level
        when :all
          return true
        when Integer
          return false
        when Range
          return item.sub_navigation.level <= level.max
        end
        false
      end

[Source]

# File lib/simple_navigation/rendering/renderer/base.rb, line 65
      def expand_sub_navigation?(item)
        expand_all? || item.selected?
      end

[Validate]