Class: ActiveDocument::SearchResults

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/ActiveDocument/search_results.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results) ⇒ SearchResults

Returns a new instance of SearchResults.



24
25
26
# File 'lib/ActiveDocument/search_results.rb', line 24

def initialize(results)
  @results_document = Nokogiri::XML(results)
end

Instance Attribute Details

#facetsObject (readonly)

Returns the value of attribute facets.



22
23
24
# File 'lib/ActiveDocument/search_results.rb', line 22

def facets
  @facets
end

Instance Method Details

#[](index) ⇒ Object



53
54
55
# File 'lib/ActiveDocument/search_results.rb', line 53

def [](index)
  SearchResult.new(@results_document.xpath("/corona:response/corona:results/corona:result")[index])
end

#each(&block) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/ActiveDocument/search_results.rb', line 44

def each(&block)
  nodeset = @results_document.xpath("/corona:response/corona:results/corona:result")
  if nodeset.length == 1
    yield SearchResult.new(nodeset[0])
  else
    @results_document.xpath("/corona:response/corona:results/corona:result").each {|node| yield SearchResult.new(node)}
  end
end

#execution_timeObject



32
33
34
# File 'lib/ActiveDocument/search_results.rb', line 32

def execution_time
  Integer(@results_document.xpath("/corona:response/corona:meta/corona:executionTime/text()").to_s)
end

#lengthObject



57
58
59
# File 'lib/ActiveDocument/search_results.rb', line 57

def length
  @results_document.xpath("/corona:response/corona:results/corona:result").length
end

#page_lengthObject



40
41
42
# File 'lib/ActiveDocument/search_results.rb', line 40

def page_length
  total - start + 1
end

#startObject



36
37
38
# File 'lib/ActiveDocument/search_results.rb', line 36

def start
  Integer(@results_document.xpath("/corona:response/corona:meta/corona:start/text()").to_s)
end

#totalObject



28
29
30
# File 'lib/ActiveDocument/search_results.rb', line 28

def total
  Integer(@results_document.xpath("/corona:response/corona:meta/corona:total/text()").to_s)
end