Sha256: 33bc02d50488dc858ed81c355f92c46de67431ff5ad887683b6145c2ba754283

Contents?: true

Size: 996 Bytes

Versions: 1

Compression:

Stored size: 996 Bytes

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.begin),
        begin_value: value.begin,
        end: format_range_display_value(value.end),
        end_value: value.end
      )
    end

    def range_limit_label_key
      if value.begin == value.end
        '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)
      value
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blacklight_range_limit-9.0.0.beta1 app/presenters/blacklight_range_limit/facet_item_presenter.rb