Sha256: 8afbdc642ec36a77ead739f536ea9338db0eefcebde662c1c7cb2c9684c03100

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

module MultiHelper
  module Navigation
    class Renderer
      include ActionView::Helpers::UrlHelper
      include ActionView::Helpers::TagHelper
      def initialize(nav, params, request)
        @params = params
        @request = request
        @navigation = nav
      end
      def to_html(options = {})
        render_navigation(@navigation)
      end
      def render_navigation(nav)
        content_tag(:div, content_tag(:ul, render_navigation_items(nav)) + content_tag(:div, "", :class => 'clear'), {:id => nav.options[:id], :class => nav.options[:class]})
      end
      def render_navigation_items(nav)
        nav.items.collect { |item|
          name = item.name
          link = item.links_to || "#"
          classes = item.options[:class]
          if item.active? or item_is_the_current_one?(item)
            classes += "active" 
          end
          content_tag(:li, link_to(name, link), item.options.merge(:class => classes))
        }.join("\n")
      end
    private
      def item_is_the_current_one?(item)
        current = @request.request_uri.split("?").first
        item.links_to == current
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lucasefe-multi_helper-0.0.1 lib/multi_helper/navigation/renderer.rb