Class: SolrMakr::CoreStatus

Inherits:
Object
  • Object
show all
Defined in:
lib/solr_makr/core_status.rb

Constant Summary collapse

LOOKS_TRUE =
/\At(?:rue)?\z/i
NAME_XML =
'str[name="name"]'
DEFAULT_CORE_XML =
'bool[name="isDefaultCore"]'
SIZE_XML =
'str[name="size"]'
SIZE_IN_BYTES_XML =
'long[name="sizeInBytes"]'
START_TIME_XML =
'date[name="startTime"]'
UPTIME_XML =
'long[name="uptime"]'
DOCUMENTS_XML =
'int[name="numDocs"]'

Class Method Summary collapse

Class Method Details

.from_xml(node) ⇒ SolrMakr::CoreStatus



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/solr_makr/core_status.rb', line 25

def from_xml(node)
  params = {
    name:           text_at_css(node, NAME_XML),
    size:           text_at_css(node, SIZE_XML),
    size_in_bytes:  text_at_css(node, SIZE_IN_BYTES_XML),
    documents:      text_at_css(node, DOCUMENTS_XML),
    uptime:         text_at_css(node, UPTIME_XML)
  }

  params[:default_core] = text_at_css(node, DEFAULT_CORE_XML) do |res|
    res.to_s.match(LOOKS_TRUE).present?
  end

  params[:start_time] = text_at_css(node, START_TIME_XML) do |res|
    Time.parse res if res.present?
  end

  new params
end

.text_at_css(node, selector, &block) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/solr_makr/core_status.rb', line 45

def text_at_css(node, selector, &block)
  result = node.at_css(selector).try(:text)

  if block_given?
    yield result
  else
    result
  end
end