Sha256: 14e13cb96b23fa79f080e77f2e1a0dc1585d2ac6d7c4dcd1a87fe3e9abfb9ca4

Contents?: true

Size: 881 Bytes

Versions: 1

Compression:

Stored size: 881 Bytes

Contents

module Blacklight
  # Renders a field and handles link_to_facet or helper_method if supplied
  class FieldPresenter
    def initialize(controller, document, field_config, options)
      @controller = controller
      @document = document
      @field_config = field_config
      @options = options
    end

    attr_reader :controller, :document, :field_config, :options

    def render
      if options[:value]
        # This prevents helper methods from drawing.
        config = Configuration::NullField.new(field_config.to_h.except(:helper_method))
        values = Array.wrap(options[:value])
      else
        config = field_config
        values = retrieve_values
      end
      Rendering::Pipeline.render(values, config, document, controller, options)
    end

    private

    def retrieve_values
      FieldRetriever.new(document, field_config).fetch
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blacklight-7.0.0.rc1 app/presenters/blacklight/field_presenter.rb