Sha256: 6ccd6f1cd04b3a55f22725dd7a56e13811cf5230538beb882e7d8da14baa12e7
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module BreadcrumbsHelper def breadcrumbs(breadcrumbs={}) html_safe <<-HTML <h3 class="breadcrumbs"> <ul class="nav nav-pills"> #{render_breadcrumbs(breadcrumbs)} </ul> </h3> HTML end def render_breadcrumbs(breadcrumbs) html = "" breadcrumbs.each_with_index do |(name, value), index| active = (index + 1) == breadcrumbs.length html << render_breadcrumb(active, name, value) end html end def render_breadcrumb(active, name, value=nil) if value.nil? render_selected_breadcrumb(active, name) elsif value.is_a?(Array) if value.length <= 1 render_breadcrumb_option(name, active) else render_dropdown_breadcrumb(active, name, value) end else render_simple_breadcrumb(active, name, value) end end def render_dropdown_breadcrumb(active, model, options) <<-HTML <li class="dropdown #{"active" if active}"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">#{model.name} <b class="caret"></b></a> <ul class="dropdown-menu"> #{options.map(&method(:render_breadcrumb_option)).join} </ul> </li> HTML end def render_breadcrumb_option(model, active=false) "<li class=\"#{"active" if active}\"><a href=\"#{url_for(model)}\">#{model.name}</a></li>" end def render_simple_breadcrumb(active, name, url) "<li class=\"#{"active" if active}\"><a href=\"#{url}\">#{name}</a></li>" end def render_selected_breadcrumb(active, name) "<li class=\"#{"active" if active}\"><a>#{name}</a></li>" end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
houston-core-0.5.0.beta1 | app/helpers/breadcrumbs_helper.rb |