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.
7 8 9 10 11 12 |
# File 'lib/solr_wrapper/configuration.rb', line 7 def initialize( = {}) @config = [:config] @verbose = [:verbose] @options = load_configs(Array([:config])).merge() end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
5 6 7 |
# File 'lib/solr_wrapper/configuration.rb', line 5 def @options end |
Instance Method Details
#algorithm ⇒ Object
34 35 36 |
# File 'lib/solr_wrapper/configuration.rb', line 34 def algorithm [:algorithm] end |
#archive_download_url ⇒ Object
130 131 132 |
# File 'lib/solr_wrapper/configuration.rb', line 130 def archive_download_url "https://archive.apache.org/dist/#{mirror_artifact_path}" end |
#artifact_path ⇒ Object
57 58 59 |
# File 'lib/solr_wrapper/configuration.rb', line 57 def artifact_path [:artifact_path] end |
#checksum ⇒ Object
30 31 32 |
# File 'lib/solr_wrapper/configuration.rb', line 30 def checksum [:checksum] end |
#closest_mirror_url ⇒ Object
104 105 106 |
# File 'lib/solr_wrapper/configuration.rb', line 104 def closest_mirror_url "https://www.apache.org/dyn/closer.lua/#{mirror_artifact_path}?asjson=true" end |
#cloud ⇒ Object
134 135 136 |
# File 'lib/solr_wrapper/configuration.rb', line 134 def cloud [:cloud] end |
#collection_options ⇒ Object
146 147 148 149 |
# File 'lib/solr_wrapper/configuration.rb', line 146 def hash = .fetch(:collection, {}) Configuration.slice(hash.transform_keys(&:to_sym), :name, :dir, :persist) end |
#configsets ⇒ Object
151 152 153 154 |
# File 'lib/solr_wrapper/configuration.rb', line 151 def configsets configsets = [:configsets] || [] configsets.map { |x| x.transform_keys(&:to_sym) } end |
#contrib ⇒ Object
160 161 162 |
# File 'lib/solr_wrapper/configuration.rb', line 160 def contrib .fetch(:contrib, []) end |
#default_download_dir ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/solr_wrapper/configuration.rb', line 65 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
61 62 63 |
# File 'lib/solr_wrapper/configuration.rb', line 61 def download_dir [:download_dir] || default_download_dir end |
#env ⇒ Object
77 78 79 |
# File 'lib/solr_wrapper/configuration.rb', line 77 def env .fetch(:env, {}) end |
#extra_lib_dir ⇒ Object
18 19 20 |
# File 'lib/solr_wrapper/configuration.rb', line 18 def extra_lib_dir [:extra_lib_dir] end |
#ignore_checksum ⇒ Object
26 27 28 |
# File 'lib/solr_wrapper/configuration.rb', line 26 def ignore_checksum [:ignore_checksum] end |
#instance_dir ⇒ Object
81 82 83 |
# File 'lib/solr_wrapper/configuration.rb', line 81 def instance_dir [:instance_dir] end |
#mirror_artifact_path ⇒ Object
96 97 98 99 100 101 102 |
# File 'lib/solr_wrapper/configuration.rb', line 96 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
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/solr_wrapper/configuration.rb', line 108 def mirror_url @mirror_url ||= if [:mirror_url] [:mirror_url] + mirror_artifact_path else begin json = HTTP.follow.get(closest_mirror_url).body doc = JSON.parse(json) url = doc['preferred'] + doc['path_info'] response = HTTP.head(url) if response.status.success? url else archive_download_url end rescue Errno::ECONNRESET, SocketError, HTTP::Error archive_download_url end end end |
#poll_interval ⇒ Object
156 157 158 |
# File 'lib/solr_wrapper/configuration.rb', line 156 def poll_interval .fetch(:poll_interval, 1) end |
#port ⇒ Object
42 43 44 45 46 47 |
# File 'lib/solr_wrapper/configuration.rb', line 42 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
73 74 75 |
# File 'lib/solr_wrapper/configuration.rb', line 73 def .fetch(:solr_options, {}) end |
#solr_xml ⇒ Object
14 15 16 |
# File 'lib/solr_wrapper/configuration.rb', line 14 def solr_xml [:solr_xml] end |
#url ⇒ Object
38 39 40 |
# File 'lib/solr_wrapper/configuration.rb', line 38 def url [:url] end |
#validate ⇒ Object
22 23 24 |
# File 'lib/solr_wrapper/configuration.rb', line 22 def validate [:validate] end |
#verbose? ⇒ Boolean
138 139 140 |
# File 'lib/solr_wrapper/configuration.rb', line 138 def verbose? @verbose || ( && !!.fetch(:verbose, false)) end |
#version ⇒ Object
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/solr_wrapper/configuration.rb', line 85 def version @version ||= begin config_version = .fetch(:version, SolrWrapper.[:version]) if config_version == 'latest' fetch_latest_version else config_version end end end |
#version_file ⇒ Object
142 143 144 |
# File 'lib/solr_wrapper/configuration.rb', line 142 def version_file [:version_file] end |
#zookeeper_host ⇒ Object
49 50 51 |
# File 'lib/solr_wrapper/configuration.rb', line 49 def zookeeper_host [:zookeeper_host] end |
#zookeeper_port ⇒ Object
53 54 55 |
# File 'lib/solr_wrapper/configuration.rb', line 53 def zookeeper_port [:zookeeper_port] end |