diff options
author | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-01-22 15:33:06 +0100 |
---|---|---|
committer | Stefan Wintermeyer <stefan.wintermeyer@amooma.de> | 2013-01-22 15:33:06 +0100 |
commit | 39aa7132ceed3d4beab3a9b828e571bbfc67c07e (patch) | |
tree | 6c88289c9f99be0af8635636fcdf64102090e5ec /lib/bootstrap_breadcrumbs_builder.rb | |
parent | 5ad8203ce4f1bfea997960d0b52c626dea24b944 (diff) | |
parent | 6f69c1a85055ec7c2515719d79d2a7a4e60cec50 (diff) |
Merge branch 'develop'5.1-beta1
Diffstat (limited to 'lib/bootstrap_breadcrumbs_builder.rb')
-rw-r--r-- | lib/bootstrap_breadcrumbs_builder.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/bootstrap_breadcrumbs_builder.rb b/lib/bootstrap_breadcrumbs_builder.rb new file mode 100644 index 0000000..1d6326b --- /dev/null +++ b/lib/bootstrap_breadcrumbs_builder.rb @@ -0,0 +1,32 @@ +# The BootstrapBreadcrumbsBuilder is a Bootstrap compatible breadcrumb builder. +# It provides basic functionalities to render a breadcrumb navigation according to Bootstrap's conventions. +# +# BootstrapBreadcrumbsBuilder accepts a limited set of options: +# * separator: what should be displayed as a separator between elements +# +# You can use it with the :builder option on render_breadcrumbs: +# <%= render_breadcrumbs :builder => ::BootstrapBreadcrumbsBuilder, :separator => "»" %> +# +# Note: You may need to adjust the autoload_paths in your config/application.rb file for rails to load this class: +# config.autoload_paths += Dir["#{config.root}/lib/"] +# +class BootstrapBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder + def render + @context.content_tag(:ul, class: 'breadcrumb') do + @elements.collect do |element| + render_element(element) + end.join.html_safe + end + end + + def render_element(element) + current = @context.current_page?(compute_path(element)) + + @context.content_tag(:li, :class => ('active' if current)) do + link_or_text = @context.link_to_unless_current(compute_name(element), compute_path(element), element.options) + divider = @context.content_tag(:span, (@options[:separator] || '/').html_safe, :class => 'divider') unless current + + link_or_text + (divider || '') + end + end +end
\ No newline at end of file |