Sha256: f93ef83d1b009a39960810b0d9a142dfed82d4dc214124d9fc6c60e630c41a9c

Contents?: true

Size: 1.23 KB

Versions: 11

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true
# 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:
#
# You can use it with the :builder option on render_breadcrumbs:
#     <%= render_breadcrumbs builder: Hyrax::BootstrapBreadcrumbsBuilder %>
#
class Hyrax::BootstrapBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
  include ActionView::Helpers::OutputSafetyHelper
  def render
    return "" if @elements.blank?

    @context.tag.nav(**breadcrumbs_options) do
      @context.tag.ol do
        safe_join(@elements.uniq.collect { |e| render_element(e) })
      end
    end
  end

  def render_element(element)
    html_class = 'active' if @context.current_page?(compute_path(element)) || element.options["aria-current"] == "page"

    @context.tag.li(class: html_class) do
      @context.link_to_unless(html_class == 'active', @context.truncate(compute_name(element), length: 30, separator: ' '), compute_path(element), element.options)
    end
  end

  def breadcrumbs_options
    { class: 'breadcrumb', role: "navigation", "aria-label" => "Breadcrumb" }
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
hyrax-5.1.0.pre.beta1 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.4 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.3 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.2 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.1 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.0 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.0.rc3 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.0.rc2 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-5.0.0.rc1 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-4.0.0 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb
hyrax-4.0.0.rc3 app/builders/hyrax/bootstrap_breadcrumbs_builder.rb