Sha256: 9349f7d169c12308a334eca48e3250f0d652d1c42af69d49ab7d3b3042411166

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 KB

Contents

module Kithe
  class IndexableSettings
    attr_accessor :solr_url, :writer_class_name, :writer_settings,
                  :model_name_solr_field, :solr_id_value_attribute, :disable_callbacks
    def initialize(solr_url:, writer_class_name:, writer_settings:,
                   model_name_solr_field:, solr_id_value_attribute:, disable_callbacks: false)
      @solr_url = solr_url
      @writer_class_name = writer_class_name
      @writer_settings = writer_settings
      @model_name_solr_field = model_name_solr_field
      @solr_id_value_attribute = solr_id_value_attribute
    end

    # Use configured solr_url, and merge together with configured
    # writer_settings
    def writer_settings
      if solr_url
        { "solr.url" => solr_url }.merge(@writer_settings)
      else
        @writer_settings
      end
    end

    # Turn writer_class_name into an actual Class object.
    def writer_class
      writer_class_name.constantize
    end

    # Instantiate a new writer based on `writer_class_name` and `writer_settings`
    def writer_instance!(additional_settings = {})
      writer_class.new(writer_settings.merge(additional_settings))
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
kithe-2.0.1 lib/kithe/indexable_settings.rb
kithe-2.0.0 lib/kithe/indexable_settings.rb
kithe-2.0.0.pre.rc1 lib/kithe/indexable_settings.rb
kithe-2.0.0.pre.beta1 lib/kithe/indexable_settings.rb
kithe-2.0.0.pre.alpha2 lib/kithe/indexable_settings.rb
kithe-2.0.0.pre.alpha1 lib/kithe/indexable_settings.rb
kithe-1.1.2 lib/kithe/indexable_settings.rb
kithe-1.1.1 lib/kithe/indexable_settings.rb
kithe-1.1.0 lib/kithe/indexable_settings.rb
kithe-1.0.0 lib/kithe/indexable_settings.rb
kithe-0.3.0 lib/kithe/indexable_settings.rb