class SPARQL::Algebra::Operator::Contains
A SPARQL
`contains` operator.
@example
(contains ?x ?y)
@see www.w3.org/TR/sparql11-query/#func-contains @see www.w3.org/TR/xpath-functions/#func-contains
Constants
- NAME
Public Instance Methods
apply(left, right, **options)
click to toggle source
The `CONTAINS` function corresponds to the XPath fn:contains. The arguments must be argument compatible otherwise an error is raised.
@example
contains("foobar", "bar") #=> true contains("foobar"@en, "foo"@en) #=> true contains("foobar"^^xsd:string, "bar"^^xsd:string) #=> true contains("foobar"^^xsd:string, "foo") #=> true contains("foobar", "bar"^^xsd:string) #=> true contains("foobar"@en, "foo") #=> true contains("foobar"@en, "bar"^^xsd:string) #=> true
@param [RDF::Literal] left
a literal
@param [RDF::Literal] right
a literal
@return [RDF::Literal::Boolean] @raise [TypeError] if operands are not compatible
# File lib/sparql/algebra/operator/contains.rb, line 34 def apply(left, right, **options) case when !left.compatible?(right) raise TypeError, "expected two RDF::Literal operands, but got #{left.inspect} and #{right.inspect}" when left.to_s.include?(right.to_s) then RDF::Literal::TRUE else RDF::Literal::FALSE end end