Sha256: 811df7ceb097c51c9b3aefb6830cf931454eae5258280156b27c523cc53b57dc

Contents?: true

Size: 1.3 KB

Versions: 8

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

module Spotlight
  # 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 => Spotlight::BootstrapBreadcrumbsBuilder %>
  #
  class BootstrapBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
    include ActionView::Helpers::OutputSafetyHelper

    def render
      return '' if @elements.blank?

      @context.content_tag(:ul, class: 'breadcrumb') do
        safe_join(@elements.uniq.map { |e| render_element(e) })
      end
    end

    def render_element(element)
      current = @context.current_page?(compute_path(element)) || element.options&.dig(:current)

      html_class = 'active' if current

      @context.content_tag(:li, class: "breadcrumb-item #{html_class}") do
        @context.link_to_unless(current, element_label(element), compute_path(element), element.options&.except(:current))
      end
    end

    private

    def element_label(element)
      @context.content_tag(:span, class: 'truncated-value') { compute_name(element) }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
blacklight-spotlight-3.2.0 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.1.0 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.3 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.2 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.1 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.0 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.0.rc6 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb
blacklight-spotlight-3.0.0.rc5 app/builders/spotlight/bootstrap_breadcrumbs_builder.rb