Sha256: 034691e8a0d70b6c745571c8407b21aff2d8ec77050475ef8aa071af583df6b7

Contents?: true

Size: 717 Bytes

Versions: 1

Compression:

Stored size: 717 Bytes

Contents

module MenuBuilder
  module ViewHelpers
    class Menu

      def initialize(context)
        @context = context
        @menu_item = @context.instance_variable_get('@menu_item')
      end

      def current_item?(item)
        @menu_item.to_s == item.to_s
      end

      def method_missing(item, *args, &block)
        css_class = "current" if current_item?(item)
        @context.content_tag :li, @context.link_to(*args, &block), :class=>css_class
      end

    end

    def menu(options={})
      concat tag(:ul, options, true)
      yield Menu.new(self)
      concat safe_html("</ul>")
    end

  private
    def safe_html(html)
      html.respond_to?(:html_safe) ? html.html_safe : html
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
menu_builder-0.2.1 lib/menu_builder/helper.rb