Class: Itonoko::XPath::Evaluator

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

Constant Summary collapse

STEP_SPLIT_CACHE =
{}
STEP_PARSE_CACHE =
{}

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Evaluator.



12
13
14
15
# File 'lib/itonoko/xpath/evaluator.rb', line 12

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

Instance Method Details

#evaluate(expr) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/itonoko/xpath/evaluator.rb', line 17

def evaluate(expr)
  seen   = {}
  result = []
  eval_expr(expr.to_s.strip, [@context], result, seen)
  doc = @context.is_a?(XML::Document) ? @context : @context.document
  XML::NodeSet.new(doc, result)
end