Class: SolrWrapper::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/solr_wrapper/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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(options = {})
  @config = options[:config]
  @verbose = options[:verbose]

  @options = load_configs(Array(options[:config])).merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



5
6
7
# File 'lib/solr_wrapper/configuration.rb', line 5

def options
  @options
end

Instance Method Details

#algorithmObject



34
35
36
# File 'lib/solr_wrapper/configuration.rb', line 34

def algorithm
  options[:algorithm]
end

#archive_download_urlObject



123
124
125
# File 'lib/solr_wrapper/configuration.rb', line 123

def archive_download_url
  "https://archive.apache.org/dist/lucene/solr/#{version}/solr-#{version}.zip"
end

#checksumObject



30
31
32
# File 'lib/solr_wrapper/configuration.rb', line 30

def checksum
  options[:checksum]
end

#closest_mirror_urlObject



96
97
98
# File 'lib/solr_wrapper/configuration.rb', line 96

def closest_mirror_url
  "http://www.apache.org/dyn/closer.lua/lucene/solr/#{version}/solr-#{version}.zip?asjson=true"
end

#cloudObject



127
128
129
# File 'lib/solr_wrapper/configuration.rb', line 127

def cloud
  options[:cloud]
end

#collection_optionsObject



139
140
141
142
# File 'lib/solr_wrapper/configuration.rb', line 139

def collection_options
  hash = options.fetch(:collection, {})
  Configuration.slice(convert_keys(hash), :name, :dir, :persist)
end

#configsetsObject



144
145
146
147
# File 'lib/solr_wrapper/configuration.rb', line 144

def configsets
  configsets = options[:configsets] || []
  configsets.map { |x| convert_keys(x) }
end

#default_download_dirObject



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_dirObject



61
62
63
# File 'lib/solr_wrapper/configuration.rb', line 61

def download_dir
  options[:download_dir] || default_download_dir
end

#envObject



77
78
79
# File 'lib/solr_wrapper/configuration.rb', line 77

def env
  options.fetch(:env, {})
end

#extra_lib_dirObject



18
19
20
# File 'lib/solr_wrapper/configuration.rb', line 18

def extra_lib_dir
  options[:extra_lib_dir]
end

#ignore_checksumObject



26
27
28
# File 'lib/solr_wrapper/configuration.rb', line 26

def ignore_checksum
  options[:ignore_checksum]
end

#instance_dirObject



81
82
83
# File 'lib/solr_wrapper/configuration.rb', line 81

def instance_dir
  options[:instance_dir]
end

#mirror_urlObject



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/solr_wrapper/configuration.rb', line 100

def mirror_url
  @mirror_url ||= if options[:mirror_url]
    options[:mirror_url] + "lucene/solr/#{version}/solr-#{version}.zip"
  else
    begin
      json = open(closest_mirror_url).read
      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_intervalObject



149
150
151
# File 'lib/solr_wrapper/configuration.rb', line 149

def poll_interval
  options.fetch(:poll_interval, 1)
end

#portObject



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 options.key?(:port) && !options[:port]
  options.fetch(:port) { SolrWrapper.default_instance_options[:port] }.to_s
end

#solr_optionsObject



73
74
75
# File 'lib/solr_wrapper/configuration.rb', line 73

def solr_options
  options.fetch(:solr_options, {})
end

#solr_xmlObject



14
15
16
# File 'lib/solr_wrapper/configuration.rb', line 14

def solr_xml
  options[:solr_xml]
end

#solr_zip_pathObject



57
58
59
# File 'lib/solr_wrapper/configuration.rb', line 57

def solr_zip_path
  options[:solr_zip_path]
end

#urlObject



38
39
40
# File 'lib/solr_wrapper/configuration.rb', line 38

def url
  options[:url]
end

#validateObject



22
23
24
# File 'lib/solr_wrapper/configuration.rb', line 22

def validate
  options[:validate]
end

#verbose?Boolean

Returns:

  • (Boolean)


131
132
133
# File 'lib/solr_wrapper/configuration.rb', line 131

def verbose?
  @verbose || (options && !!options.fetch(:verbose, false))
end

#versionObject



85
86
87
88
89
90
91
92
93
94
# File 'lib/solr_wrapper/configuration.rb', line 85

def version
  @version ||= begin
    config_version = options.fetch(:version, SolrWrapper.default_instance_options[:version])
    if config_version == 'latest'
      fetch_latest_version
    else
      config_version
    end
  end
end

#version_fileObject



135
136
137
# File 'lib/solr_wrapper/configuration.rb', line 135

def version_file
  options[:version_file]
end

#zookeeper_hostObject



49
50
51
# File 'lib/solr_wrapper/configuration.rb', line 49

def zookeeper_host
  options[:zookeeper_host]
end

#zookeeper_portObject



53
54
55
# File 'lib/solr_wrapper/configuration.rb', line 53

def zookeeper_port
  options[:zookeeper_port]
end