Sha256: c619ad6fbb599c279f6f3c517d2046a7e9e495ccacdcf02953e9b0b39bffc458

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

module Navi
  module Renderers
    class SimpleNavigation < Navi::Renderers::Base

      def render(collection)
        items = create_dynamic_items(collection)
        @template.render_navigation :items => items, :expand_all => true
      end

      private

      # Create an array of hashes that can be easily fed into SimpleNavigation
      # like in the following like:
      # https://github.com/andi/simple-navigation/wiki/Dynamic-Navigation-Items
      def create_dynamic_items(collection)
        nav = []
        collection.each do |nav_item|
          item = {}
          item[:key] = @template.dom_id(nav_item).to_sym
          item[:name] = nav_item.label
          if nav_item.link.is_a?(String)
            item[:url] = nav_item.link
          else # it's a database record then!
            puts "This is the link: #{nav_item.link.inspect}"
            item[:url] = @template.polymorphic_path(nav_item.link)
            #item[:url] = "/"
          end
          item[:options] = {:title => nav_item.title, :class => nav_item.class.name.underscore}
          item[:items] = create_dynamic_items(nav_item.children)

          nav << item
        end
        nav
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
navi-0.0.13 lib/navi/renderers/simple_navigation.rb
navi-0.0.12 lib/navi/renderers/simple_navigation.rb
navi-0.0.11 lib/navi/renderers/simple_navigation.rb
navi-0.0.10 lib/navi/renderers/simple_navigation.rb
navi-0.0.9 lib/navi/renderers/simple_navigation.rb
navi-0.0.6 lib/navi/renderers/simple_navigation.rb