Sha256: 23787f7a36df43c3e2f1a0c0aba3270cfd930f644a2edd772cc943ec1f457a05

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

= menu_builder

A simple helper + controller macro to make easier to highligh menu items based on actions (instead of urls)

== Instalation

  gem "menu_builder"

== Usage

=== Controller

  class DashboardController < ApplicationController
    menu_item :mydashboard
    ...
  end

You can also change to menu item at action level instead of class level.

  class DashboardController < ApplicationController
    menu_item :mydashboard

    def prices
      menu_item :prices
      ...
    end
  end

And you can prepend or append just one item to the collection

  class DashboardController < ApplicationController
    menu_item :mydashboard

    def prices
      append_menu_item :prices
      ...
    end
  end

=== View

==== ERB code

  <%= menu(:id=>"mainMenu", :class=>"menu") do |m| %>
    <%= m.account 'Account', account_path, :style => 'float: right' %>
    <%= m.users 'Users', users_path, :style => 'float: right' %>
    <%= m.mydashboard 'Dashboard', '/' %>
    <%= m.projects 'Projects', projects_path %>
  <% end %>

==== HTML Result

   <ul id="mainMenu" class="menu">
     <li><a href="/accounts">Account</a></li>
     <li><a href="/users">Users</a></li>
     <li><a href="/" class="current">Dashboard</a></li>
     <li><a href="/projects">Projects</a></li>
   </ul>

==== Blocks for content

You can also pass blocks:

  <%= menu do |m| %>
    <% m.account account_path do %>
      <%= image_tag "icon.jpg" /> Accounts
    <% end %>
    <%= m.users "Users", users_path %>
    <%= m.posts "Posts", posts_path %>
  <% end %>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
menu_builder-0.5 README.rdoc