Class: Itonoko::XPath::Evaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/itonoko/xpath/evaluator.rb

Instance Method Summary collapse

Constructor Details

#initialize(context_node, namespaces = {}) ⇒ Evaluator

Returns a new instance of Evaluator.



9
10
11
12
# File 'lib/itonoko/xpath/evaluator.rb', line 9

def initialize(context_node, namespaces = {})
  @context   = context_node
  @namespaces = namespaces
end

Instance Method Details

#evaluate(expr) ⇒ Object



14
15
16
17
18
# File 'lib/itonoko/xpath/evaluator.rb', line 14

def evaluate(expr)
  nodes = eval_expr(expr.to_s.strip, [@context])
  doc   = @context.is_a?(XML::Document) ? @context : @context.document
  XML::NodeSet.new(doc, nodes.flatten.uniq { |n| n.object_id })
end