class Solr::CoreConfiguration::CoreConfigBuilder

Attributes

default[R]
dynamic_fields[R]
fields_params[R]
name[R]

Public Class Methods

new(name:, default:) click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 6
def initialize(name:, default:)
  @name = name
  @default = default
  @dynamic_fields = {}
  @fields_params = {}
end

Public Instance Methods

build() click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 21
def build
  Solr::CoreConfiguration::CoreConfig.new(
    name: name,
    fields: build_fields,
    default: default
  )
end
dynamic_field(field_name, solr_name:) click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 13
def dynamic_field(field_name, solr_name:)
  dynamic_fields[field_name] = Solr::CoreConfiguration::DynamicField.new(name: field_name, solr_name: solr_name)
end
field(field_name, params = {}) click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 17
def field(field_name, params = {})
  fields_params[field_name] = params
end
get_dynamic_field(field_name, dynamic_field_name) click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 29
def get_dynamic_field(field_name, dynamic_field_name)
  dynamic_field = dynamic_fields[dynamic_field_name]

  if dynamic_field_name && !dynamic_field
    raise "Field '#{field_name}' is mapped to an undefined dynamic field '#{dynamic_field_name}'"
  end

  dynamic_field
end

Private Instance Methods

build_fields() click to toggle source
# File lib/solr/core_configuration/core_config_builder.rb, line 41
def build_fields
  fields_params.each_with_object({}) do |(name, params), fields|
    fields[name] =
      Solr::CoreConfiguration::Field.new(name: name,
                                          solr_name: params[:solr_name],
                                          dynamic_field: get_dynamic_field(name, params[:dynamic_field]))
  end
end