/
twitter-bootstrap-breadcrumbs.rb
41 lines (35 loc) · 1.17 KB
/
twitter-bootstrap-breadcrumbs.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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|
name = controller.send :translate_breadcrumb, name, self.name if name.is_a?(Symbol)
controller.send :add_breadcrumb, name, url
end
end
end
protected
def add_breadcrumb(name, url = '', options = {})
@breadcrumbs ||= []
name = translate_breadcrumb(name, self.class_name) if name.is_a?(Symbol)
url = eval(url.to_s) if url =~ /_path|_url|@/
@breadcrumbs << {:name => name, :url => url, :options => options}
end
def translate_breadcrumb(name, class_name)
scope = [:breadcrumbs]
namespace = class_name.underscore.split('/')
namespace.last.sub!('_controller', '')
scope += namespace
I18n.t name, scope: scope
end
def render_breadcrumbs(divider = '/')
s = render :partial => 'twitter-bootstrap/breadcrumbs', :locals => {:divider => divider}
s.first
end
end
end
end