class Solr::Configuration
Constants
- SOLRB_USER_AGENT_HEADER
Attributes
auth_password[RW]
auth_user[RW]
cloud_configuration[R]
cores[RW]
faraday_configuration[R]
faraday_options[R]
logger[W]
master_slave_configuration[R]
test_connection[RW]
url[RW]
Public Class Methods
new()
click to toggle source
# File lib/solr/configuration.rb, line 28 def initialize @faraday_options = { request: { timeout: 2, open_timeout: 8 }, headers: SOLRB_USER_AGENT_HEADER } @faraday_configuration = nil @cores = {} @cloud_configuration = Solr::Cloud::Configuration.new @master_slave_configuration = Solr::MasterSlave::Configuration.new end
Public Instance Methods
build_env_url_core_config(name: nil)
click to toggle source
# File lib/solr/configuration.rb, line 86 def build_env_url_core_config(name: nil) name ||= core_name_from_solr_url_env Solr::CoreConfiguration::EnvUrlCoreConfig.new(name: name) end
core_config_by_name(core)
click to toggle source
# File lib/solr/configuration.rb, line 49 def core_config_by_name(core) cores[core.to_sym] || build_env_url_core_config(name: core) end
core_name_from_solr_url_env()
click to toggle source
# File lib/solr/configuration.rb, line 75 def core_name_from_solr_url_env full_solr_core_uri = URI.parse(ENV['SOLR_URL']) core_name = full_solr_core_uri.path.gsub('/solr', '').delete('/') if !core_name || core_name == '' raise Solr::Errors::CouldNotInferImplicitCoreName end core_name end
default_core_config()
click to toggle source
# File lib/solr/configuration.rb, line 53 def default_core_config defined_default_core_config = cores.values.detect(&:default?) return defined_default_core_config if defined_default_core_config raise Solr::Errors::AmbiguousCoreError if cores.count > 1 cores.values.first || build_env_url_core_config end
define_core(name: nil, default: false) { |builder| ... }
click to toggle source
# File lib/solr/configuration.rb, line 60 def define_core(name: nil, default: false) validate_default_core_config!(default: default) builder = Solr::CoreConfiguration::CoreConfigBuilder.new( name: name, default: default ) yield builder core = builder.build if cores.has_key?(core.name) raise "A core with name '#{core.name}' has been already defined" else cores[core.name] = core end end
faraday_configure(&block)
click to toggle source
# File lib/solr/configuration.rb, line 45 def faraday_configure(&block) @faraday_configuration = block end
faraday_options=(options)
click to toggle source
# File lib/solr/configuration.rb, line 39 def faraday_options=(options) options[:headers] ||= {} options[:headers].merge!(SOLRB_USER_AGENT_HEADER) @faraday_options = options end
logger()
click to toggle source
# File lib/solr/configuration.rb, line 107 def logger @logger || null_logger end
validate!()
click to toggle source
# File lib/solr/configuration.rb, line 98 def validate! if !(url || @cloud_configuration.zookeeper_url || (@master_slave_configuration.master_url && @master_slave_configuration.slave_url) || ENV['SOLR_URL']) raise Solr::Errors::SolrUrlNotDefinedError end end
validate_default_core_config!(default:)
click to toggle source
# File lib/solr/configuration.rb, line 91 def validate_default_core_config!(default:) return unless default if cores.any? { |name, core_config| core_config.default? } raise ArgumentError, 'Only one default core can be specified' end end
Private Instance Methods
null_logger()
click to toggle source
# File lib/solr/configuration.rb, line 113 def null_logger @null_logger ||= ::Logger.new(IO::NULL) end