From 10e82de87b48800a7e94c3e89944faca3a7d904f Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Wed, 27 Aug 2014 20:26:10 +0200 Subject: [PATCH] Handle boolean values in predicate results. --- lib/oga/xpath/evaluator.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/oga/xpath/evaluator.rb b/lib/oga/xpath/evaluator.rb index f999a05..fa7e680 100644 --- a/lib/oga/xpath/evaluator.rb +++ b/lib/oga/xpath/evaluator.rb @@ -161,8 +161,13 @@ module Oga if retval.is_a?(Numeric) new_nodes << current if retval.to_i == xpath_index - # Node sets, strings, etc - elsif retval and !retval.empty? + # Node sets, strings, booleans, etc + elsif retval + # Empty strings and node sets evaluate to false. + if retval.respond_to?(:empty?) and retval.empty? + next + end + new_nodes << current end end