Class: SolrMakr::SolrConfiguration

Inherits:
Object
  • Object
show all
Includes:
SolrRequest
Defined in:
lib/solr_makr/solr_configuration.rb

Constant Summary collapse

DEFAULT_HOME =
'/opt/solr/jetty-solr/'
DEFAULT_HOST =
'localhost'
DEFAULT_PORT =
8983

Instance Method Summary collapse

Methods included from SolrRequest

#solr_request

Constructor Details

#initialize(env = ENV) ⇒ SolrConfiguration

Returns a new instance of SolrConfiguration.



23
24
25
26
27
# File 'lib/solr_makr/solr_configuration.rb', line 23

def initialize(env = ENV)
  @_env = env

  super()
end

Instance Method Details

#core(name: nil) ⇒ Object



33
34
35
# File 'lib/solr_makr/solr_configuration.rb', line 33

def core(name: nil)
  Core.new name: name, config: self
end

#core_directoryString

Returns:

  • (String)


44
45
46
# File 'lib/solr_makr/solr_configuration.rb', line 44

def core_directory
  home.join 'solr'
end

#coresObject



37
38
39
40
41
# File 'lib/solr_makr/solr_configuration.rb', line 37

def cores
  core_directory.children.each_with_object [] do |path, cores|
    cores << core(name: path.basename) if looks_like_core_directory?(path)
  end
end

#envObject



29
30
31
# File 'lib/solr_makr/solr_configuration.rb', line 29

def env
  @_env ||= ENV
end

#solr_status<SolrMakr::CoreStatus>

Returns:



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/solr_makr/solr_configuration.rb', line 49

def solr_status
  resp = solr_request solr_cores_url, params: { action: 'STATUS' }

  parsed = Nokogiri::XML(resp.body)

  statuses = parsed.at_css('lst[name="status"]').try(:children)

  return [] unless statuses.present?

  statuses.each_with_object [] do |status, list|
    created = SolrMakr::CoreStatus.from_xml status# rescue nil

    list << created if created.present?
  end
end