Sha256: 61c091c052305251b47a3b12ee2f66ab9e373062870d707ed7c8e050bdd3841e

Contents?: true

Size: 1.31 KB

Versions: 15

Compression:

Stored size: 1.31 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,
                  :batching_mode_batch_size
    def initialize(solr_url:, writer_class_name:, writer_settings:,
                   model_name_solr_field:, solr_id_value_attribute:, disable_callbacks: false,
                   batching_mode_batch_size: 100)
      @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 || 'id'
      @batching_mode_batch_size = batching_mode_batch_size

      # use our local setter to set solr_url also in writer_settings
      solr_url = solr_url
    end


    # set solr_url also in writer_settings, cause it's expected there.
    def solr_url=(v)
      @solr_url = v
      writer_settings["solr.url"] = v if writer_settings
    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

15 entries across 15 versions & 1 rubygems

Version Path
kithe-2.16.0 lib/kithe/indexable_settings.rb
kithe-2.15.1 lib/kithe/indexable_settings.rb
kithe-2.15.0 lib/kithe/indexable_settings.rb
kithe-2.14.0 lib/kithe/indexable_settings.rb
kithe-2.13.0 lib/kithe/indexable_settings.rb
kithe-2.12.0 lib/kithe/indexable_settings.rb
kithe-2.11.0 lib/kithe/indexable_settings.rb
kithe-2.10.0 lib/kithe/indexable_settings.rb
kithe-2.9.1 lib/kithe/indexable_settings.rb
kithe-2.9.0 lib/kithe/indexable_settings.rb
kithe-2.8.0 lib/kithe/indexable_settings.rb
kithe-2.7.1 lib/kithe/indexable_settings.rb
kithe-2.7.0 lib/kithe/indexable_settings.rb
kithe-2.6.1 lib/kithe/indexable_settings.rb
kithe-2.6.0 lib/kithe/indexable_settings.rb