Sha256: bd0347c9263d9bf97d3fcee6290eb63724b35a58028f2c0b85cb13a0d6ce0eba

Contents?: true

Size: 772 Bytes

Versions: 6

Compression:

Stored size: 772 Bytes

Contents

# frozen_string_literal: true

##
# A factory to return blacklight field configurations given a field key
# that represents a field group (e.g. summary_fields, access_fields, etc)
class BlacklightFieldConfigurationFactory
  def self.for(config:, field:, field_group:)
    new(config: config, field: field, field_group: field_group).field_config
  end

  def initialize(config:, field:, field_group:)
    @config = config
    @field = field
    @field_group = field_group
  end

  def field_config
    return null_field unless config.respond_to?(:"#{field_group}s")

    config.send(:"#{field_group}s").fetch(field) { null_field }
  end

  private

  attr_reader :config, :field, :field_group

  def null_field
    Blacklight::Configuration::NullField.new(field)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
arclight-0.5.0 app/factories/blacklight_field_configuration_factory.rb
arclight-0.4.0 app/factories/blacklight_field_configuration_factory.rb
arclight-0.3.3 app/factories/blacklight_field_configuration_factory.rb
arclight-0.3.2 app/factories/blacklight_field_configuration_factory.rb
arclight-0.3.1 app/factories/blacklight_field_configuration_factory.rb
arclight-0.3.0 app/factories/blacklight_field_configuration_factory.rb