&(expression)
click to toggle source
+(*expressions)
click to toggle source
==(expression)
click to toggle source
[](expression)
click to toggle source
and(expression)
click to toggle source
def and(expression)
Expression::And.new(current, expression)
end
apply(variables={})
click to toggle source
def apply(variables={})
Expression::Applied.new(current, variables)
end
current()
click to toggle source
equals(expression)
click to toggle source
def equals(expression)
Expression::Equality.new(current, expression)
end
inverse()
click to toggle source
def inverse
Expression::Inverse.new(current)
end
is(expression)
click to toggle source
def is(expression)
Expression::Is.new(current, expression)
end
n()
click to toggle source
next_sibling(*expressions)
click to toggle source
def next_sibling(*expressions)
Expression::NextSibling.new(current, expressions)
end
normalize()
click to toggle source
def normalize
Expression::NormalizedSpace.new(current)
end
one_of(*expressions)
click to toggle source
def one_of(*expressions)
Expression::OneOf.new(current, expressions)
end
or(expression)
click to toggle source
def or(expression)
Expression::Or.new(current, expression)
end
string_literal()
click to toggle source
def string_literal
Expression::StringLiteral.new(self)
end
to_s()
click to toggle source
def to_s
to_xpaths.join(' | ')
end
to_xpath(predicate=nil)
click to toggle source
def to_xpath(predicate=nil)
raise NotImplementedError, "please implement in subclass"
end
to_xpaths()
click to toggle source
def to_xpaths
[to_xpath(:exact), to_xpath(:fuzzy)].uniq
end
union(*expressions)
click to toggle source
def union(*expressions)
Union.new(*[self, expressions].flatten)
end
where(expression)
click to toggle source
def where(expression)
Expression::Where.new(current, expression)
end
wrap_xpath(expression)
click to toggle source
def wrap_xpath(expression)
case expression
when ::String then Expression::StringLiteral.new(expression)
when ::Symbol then Expression::Literal.new(expression)
else expression
end
end
|(expression)
click to toggle source
~()
click to toggle source