Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Adds twitter bootstrap breadcrumb support.
  • Loading branch information
ji committed Mar 7, 2012
1 parent cac6ac5 commit e009da9
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 3 deletions.
5 changes: 5 additions & 0 deletions app/helpers/twitter_breadcrumbs_helper.rb
@@ -0,0 +1,5 @@
module TwitterBreadcrumbsHelper
def render_breadcrumbs(divider)
render partial: 'twitter-bootstrap/breadcrumbs', locals: {divider: divider}
end
end
14 changes: 14 additions & 0 deletions app/views/twitter-bootstrap/_breadcrumbs.html.erb
@@ -0,0 +1,14 @@
<ul class="breadcrumb">
<% separator = "/"; separator ||= divider %>
<% if @breadcrumbs %>
<% @breadcrumbs[0..-2].each do |crumb| %>
<li>
<a href="<%= crumb[:url] %>"><%= crumb[:name] %></a>
<span class="divider"><%= separator %></span>
</li>
<% end %>
<li class="active">
<a href="<%= @breadcrumbs.last[:url] %>"><%= @breadcrumbs.last[:name] %></a>
</li>
<% end %>
</ul>
12 changes: 9 additions & 3 deletions lib/twitter/bootstrap/rails/engine.rb
@@ -1,16 +1,22 @@
require 'rails'
require File.dirname(__FILE__) + '/twitter-bootstrap-breadcrumbs.rb'

module Twitter
module Bootstrap
module Rails
class Engine < ::Rails::Engine

initializer 'twitter-bootstrap-rails.setup',
:after => 'less-rails.after.load_config_initializers',
:group => :all do |app|
app.config.less.paths << File.join(config.root, 'vendor', 'toolkit')
end
app.config.less.paths << File.join(config.root, 'vendor', 'toolkit')
end

initializer 'twitter-bootstrap-rails.setup_helpers' do |app|
app.config.to_prepare do
ActionController::Base.send(:include, BreadCrumbs)
end
end
end
end
end
Expand Down
25 changes: 25 additions & 0 deletions lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb
@@ -0,0 +1,25 @@
module Twitter
module Bootstrap
module BreadCrumbs
def self.included(base)
base.extend(ClassMethods)
end

module ClassMethods
def add_breadcrumb name, url, options={}
before_filter options do |controller|
controller.send :add_breadcrumb, name, url
end
end
end

protected

def add_breadcrumb name, url = ''
@breadcrumbs ||= []
url = eval(url) if url =~ /_path|_url|@/
@breadcrumbs << {name: name, url: url}
end
end
end
end

0 comments on commit e009da9

Please sign in to comment.