Sha256: 4213d5c92d8a581c30155bd79947007860babc3bd41480f9269fb7529e9f20e7

Contents?: true

Size: 1.29 KB

Versions: 7

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module BlacklightRangeLimit
  # Override the default item presenter to provide custom labels for
  # range data.
  class FacetItemPresenter < Blacklight::FacetItemPresenter
    def label
      label_for_range || super
    end

    private

    def label_for_range
      return unless value.is_a? Range

      view_context.t(
        range_limit_label_key,
        begin: format_range_display_value(value.first),
        begin_value: value.first,
        end: format_range_display_value(value.last),
        end_value: value.last
      )
    end

    def range_limit_label_key
      if value.first == value.last
        'blacklight.range_limit.single_html'
      else
        'blacklight.range_limit.range_html'
      end
    end

    ##
    # A method that is meant to be overridden downstream to format how a range
    # label might be displayed to a user. By default it just returns the value.
    def format_range_display_value(value)
      if view_context.method(:format_range_display_value).owner == RangeLimitHelper
        value
      else
        Deprecation.warn(BlacklightRangeLimit, 'Helper method #format_range_display_value has been overridden; implement a custom FacetItemPresenter instead')
        view_context.format_range_display_value(value, key)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
blacklight_range_limit-8.5.0 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.4.0 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.3.0 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.2.3 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.2.2 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.2.1 app/presenters/blacklight_range_limit/facet_item_presenter.rb
blacklight_range_limit-8.2.0 app/presenters/blacklight_range_limit/facet_item_presenter.rb