Class: SolrWrapper::Configuration
- Inherits:
-
Object
- Object
- SolrWrapper::Configuration
- Defined in:
- lib/solr_wrapper/configuration.rb
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #algorithm ⇒ Object
- #archive_download_url ⇒ Object
- #artifact_path ⇒ Object
- #checksum ⇒ Object
- #closest_mirror_url ⇒ Object
- #cloud ⇒ Object
- #collection_options ⇒ Object
- #configsets ⇒ Object
- #contrib ⇒ Object
- #default_download_dir ⇒ Object
- #download_dir ⇒ Object
- #env ⇒ Object
- #extra_lib_dir ⇒ Object
- #ignore_checksum ⇒ Object
-
#initialize(options = {}) ⇒ Configuration
constructor
A new instance of Configuration.
- #instance_dir ⇒ Object
- #mirror_artifact_path ⇒ Object
- #mirror_url ⇒ Object
- #poll_interval ⇒ Object
- #port ⇒ Object
- #solr_options ⇒ Object
- #solr_xml ⇒ Object
- #url ⇒ Object
- #validate ⇒ Object
- #verbose? ⇒ Boolean
- #version ⇒ Object
- #version_file ⇒ Object
- #zookeeper_host ⇒ Object
- #zookeeper_port ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Configuration
Returns a new instance of Configuration.
8 9 10 11 12 13 14 |
# File 'lib/solr_wrapper/configuration.rb', line 8 def initialize( = {}) @config = [:config] @verbose = [:verbose] @options = load_configs(Array([:config])).merge() @options[:env] ||= ENV end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
6 7 8 |
# File 'lib/solr_wrapper/configuration.rb', line 6 def @options end |
Instance Method Details
#algorithm ⇒ Object
36 37 38 |
# File 'lib/solr_wrapper/configuration.rb', line 36 def algorithm [:algorithm] end |
#archive_download_url ⇒ Object
142 143 144 |
# File 'lib/solr_wrapper/configuration.rb', line 142 def archive_download_url "https://archive.apache.org/dist/#{mirror_artifact_path}" end |
#artifact_path ⇒ Object
59 60 61 |
# File 'lib/solr_wrapper/configuration.rb', line 59 def artifact_path [:artifact_path] end |
#checksum ⇒ Object
32 33 34 |
# File 'lib/solr_wrapper/configuration.rb', line 32 def checksum [:checksum] end |
#closest_mirror_url ⇒ Object
111 112 113 |
# File 'lib/solr_wrapper/configuration.rb', line 111 def closest_mirror_url "https://www.apache.org/dyn/closer.lua/#{mirror_artifact_path}?asjson=true" end |
#cloud ⇒ Object
146 147 148 |
# File 'lib/solr_wrapper/configuration.rb', line 146 def cloud [:cloud] end |
#collection_options ⇒ Object
158 159 160 161 |
# File 'lib/solr_wrapper/configuration.rb', line 158 def hash = .fetch(:collection, {}) Configuration.slice(hash.transform_keys(&:to_sym), :name, :dir, :persist) end |
#configsets ⇒ Object
163 164 165 166 |
# File 'lib/solr_wrapper/configuration.rb', line 163 def configsets configsets = [:configsets] || [] configsets.map { |x| x.transform_keys(&:to_sym) } end |
#contrib ⇒ Object
172 173 174 |
# File 'lib/solr_wrapper/configuration.rb', line 172 def contrib .fetch(:contrib, []) end |
#default_download_dir ⇒ Object
67 68 69 70 71 72 73 |
# File 'lib/solr_wrapper/configuration.rb', line 67 def default_download_dir if defined?(Rails) && Rails.respond_to?(:root) && Rails.root File.join(Rails.root, 'tmp') else Dir.tmpdir end end |
#download_dir ⇒ Object
63 64 65 |
# File 'lib/solr_wrapper/configuration.rb', line 63 def download_dir [:download_dir] || default_download_dir end |
#env ⇒ Object
79 80 81 |
# File 'lib/solr_wrapper/configuration.rb', line 79 def env .fetch(:env, {}) end |
#extra_lib_dir ⇒ Object
20 21 22 |
# File 'lib/solr_wrapper/configuration.rb', line 20 def extra_lib_dir [:extra_lib_dir] end |
#ignore_checksum ⇒ Object
28 29 30 |
# File 'lib/solr_wrapper/configuration.rb', line 28 def ignore_checksum [:ignore_checksum] end |
#instance_dir ⇒ Object
83 84 85 |
# File 'lib/solr_wrapper/configuration.rb', line 83 def instance_dir [:instance_dir] end |
#mirror_artifact_path ⇒ Object
103 104 105 106 107 108 109 |
# File 'lib/solr_wrapper/configuration.rb', line 103 def mirror_artifact_path if version > '9' "solr/solr/#{version}/solr-#{version}.tgz" else "lucene/solr/#{version}/solr-#{version}.tgz" end end |
#mirror_url ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/solr_wrapper/configuration.rb', line 115 def mirror_url @mirror_url ||= if [:mirror_url] [:mirror_url] + mirror_artifact_path else begin client = Faraday.new(closest_mirror_url) do |faraday| faraday.use Faraday::FollowRedirects::Middleware faraday.adapter Faraday.default_adapter end json = client.get.body doc = JSON.parse(json) url = doc['preferred'] + doc['path_info'] response = Faraday.head(url) if response.success? url else archive_download_url end rescue Errno::ECONNRESET, SocketError, Faraday::Error archive_download_url end end end |
#poll_interval ⇒ Object
168 169 170 |
# File 'lib/solr_wrapper/configuration.rb', line 168 def poll_interval .fetch(:poll_interval, 1) end |
#port ⇒ Object
44 45 46 47 48 49 |
# File 'lib/solr_wrapper/configuration.rb', line 44 def port # Check if the port option has been explicitly set to nil. # this means to start solr wrapper on a random open port return nil if .key?(:port) && ![:port] .fetch(:port) { SolrWrapper.[:port] }.to_s end |
#solr_options ⇒ Object
75 76 77 |
# File 'lib/solr_wrapper/configuration.rb', line 75 def .fetch(:solr_options, {}) end |
#solr_xml ⇒ Object
16 17 18 |
# File 'lib/solr_wrapper/configuration.rb', line 16 def solr_xml [:solr_xml] end |
#url ⇒ Object
40 41 42 |
# File 'lib/solr_wrapper/configuration.rb', line 40 def url [:url] end |
#validate ⇒ Object
24 25 26 |
# File 'lib/solr_wrapper/configuration.rb', line 24 def validate [:validate] end |
#verbose? ⇒ Boolean
150 151 152 |
# File 'lib/solr_wrapper/configuration.rb', line 150 def verbose? @verbose || ( && !!.fetch(:verbose, false)) end |
#version ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/solr_wrapper/configuration.rb', line 87 def version @version ||= begin config_version = if [:version].nil? || [:version].empty? .fetch(:version, SolrWrapper.[:version]) else [:version] end if config_version == 'latest' fetch_latest_version else config_version end end end |
#version_file ⇒ Object
154 155 156 |
# File 'lib/solr_wrapper/configuration.rb', line 154 def version_file [:version_file] end |
#zookeeper_host ⇒ Object
51 52 53 |
# File 'lib/solr_wrapper/configuration.rb', line 51 def zookeeper_host [:zookeeper_host] end |
#zookeeper_port ⇒ Object
55 56 57 |
# File 'lib/solr_wrapper/configuration.rb', line 55 def zookeeper_port [:zookeeper_port] end |