oga/spec/support/evaluation_helpers.rb

32 lines
829 B
Ruby

module Oga
module EvaluationHelpers
##
# @param [Oga::XML::Document] document
# @param [String] xpath
# @return [Oga::XML::NodeSet]
#
def evaluate_xpath(document, xpath = self.class.description, namespaces: nil)
ast = parse_xpath(xpath)
compiler = Oga::XPath::Compiler.new(namespaces: namespaces)
block = compiler.compile(ast)
block.call(document)
end
##
# Parses and evaluates a CSS expression.
#
# @param [Oga::XML::Document] document
# @param [String] css
# @return [Oga::XML::NodeSet]
#
def evaluate_css(document, css = self.class.description)
ast = parse_css(css)
compiler = Oga::XPath::Compiler.new
block = compiler.compile(ast)
block.call(document)
end
end # EvaluationHelpers
end # Oga