Class: XTF::Result::Element::Facet
- Inherits:
-
Object
- Object
- XTF::Result::Element::Facet
- Defined in:
- lib/xtf/result/element/facet.rb
Instance Attribute Summary collapse
-
#field ⇒ Object
readonly
require ‘libxml_helper’.
-
#groups ⇒ Object
readonly
require ‘libxml_helper’.
-
#query ⇒ Object
readonly
require ‘libxml_helper’.
-
#total_docs ⇒ Object
readonly
require ‘libxml_helper’.
-
#total_groups ⇒ Object
readonly
require ‘libxml_helper’.
Instance Method Summary collapse
-
#initialize(xml = nil, search = nil) ⇒ Facet
constructor
A new instance of Facet.
-
#parse_xml(xml) ⇒ Object
Parses the important bits out of the XTF search results using LibXML-Ruby.
Constructor Details
#initialize(xml = nil, search = nil) ⇒ Facet
Returns a new instance of Facet.
10 11 12 13 14 15 16 |
# File 'lib/xtf/result/element/facet.rb', line 10 def initialize(xml=nil, search=nil) start = Time.now @groups = [] @query = query parse_xml(xml) if xml # RAILS_DEFAULT_LOGGER.debug("~~~~~ #{self.class.name} initialized #{@groups.size} hits in #{Time.now - start} seconds.") end |
Instance Attribute Details
#field ⇒ Object (readonly)
require ‘libxml_helper’
4 5 6 |
# File 'lib/xtf/result/element/facet.rb', line 4 def field @field end |
#groups ⇒ Object (readonly)
require ‘libxml_helper’
4 5 6 |
# File 'lib/xtf/result/element/facet.rb', line 4 def groups @groups end |
#query ⇒ Object (readonly)
require ‘libxml_helper’
4 5 6 |
# File 'lib/xtf/result/element/facet.rb', line 4 def query @query end |
#total_docs ⇒ Object (readonly)
require ‘libxml_helper’
4 5 6 |
# File 'lib/xtf/result/element/facet.rb', line 4 def total_docs @total_docs end |
#total_groups ⇒ Object (readonly)
require ‘libxml_helper’
4 5 6 |
# File 'lib/xtf/result/element/facet.rb', line 4 def total_groups @total_groups end |
Instance Method Details
#parse_xml(xml) ⇒ Object
Parses the important bits out of the XTF search results using LibXML-Ruby.
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/xtf/result/element/facet.rb', line 19 def parse_xml(xml) @xml = xml.to_s.squish #.gsub(/\s+/, " ").strip @doc = XML::Document.parse_string(@xml).root # the query metadata @field = @doc.at('/facet')['field'] @total_groups = @doc.at('/facet')['totalGroups'] @total_docs = @doc.at('/facet')['totalDocs'] @groups = @doc.search('/facet/group').collect { |h| XTF::Result::Element::Group.new(h, @query) }.compact end |