summaryrefslogtreecommitdiff
path: root/lib/bootstrap_breadcrumbs_builder.rb
diff options
context:
space:
mode:
authorStefan Wintermeyer <stefan.wintermeyer@amooma.de>2013-01-22 15:33:06 +0100
committerStefan Wintermeyer <stefan.wintermeyer@amooma.de>2013-01-22 15:33:06 +0100
commit39aa7132ceed3d4beab3a9b828e571bbfc67c07e (patch)
tree6c88289c9f99be0af8635636fcdf64102090e5ec /lib/bootstrap_breadcrumbs_builder.rb
parent5ad8203ce4f1bfea997960d0b52c626dea24b944 (diff)
parent6f69c1a85055ec7c2515719d79d2a7a4e60cec50 (diff)
Merge branch 'develop'5.1-beta1
Diffstat (limited to 'lib/bootstrap_breadcrumbs_builder.rb')
-rw-r--r--lib/bootstrap_breadcrumbs_builder.rb32
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 => "&raquo;" %>
+#
+# 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