Class: RDF::N3::Algebra::Math::Difference
- Inherits:
-
ListOperator
- Object
- SPARQL::Algebra::Operator::Binary
- ListOperator
- RDF::N3::Algebra::Math::Difference
- Defined in:
- lib/rdf/n3/algebra/math/difference.rb
Overview
The subject is a pair of numbers. The object is calculated by subtracting the second number of the pair from the first.
Constant Summary collapse
Instance Attribute Summary
Attributes included from Enumerable
Instance Method Summary collapse
-
#resolve(list) ⇒ RDF::Term
The math:difference operator takes a pair of strings or numbers and calculates their difference.
-
#validate(list) ⇒ Boolean
The list argument must be a pair of literals.
Methods inherited from ListOperator
#as_literal, #execute, #input_operand
Methods included from Builtin
#each, #evaluate, #hash, #input_operand, #rank, #to_uri
Instance Method Details
#resolve(list) ⇒ RDF::Term
The math:difference operator takes a pair of strings or numbers and calculates their difference.
21 22 23 |
# File 'lib/rdf/n3/algebra/math/difference.rb', line 21 def resolve(list) list.to_a.map(&:as_number).reduce(&:-) end |
#validate(list) ⇒ Boolean
The list argument must be a pair of literals.
31 32 33 34 35 36 37 38 |
# File 'lib/rdf/n3/algebra/math/difference.rb', line 31 def validate(list) if super && list.all?(&:literal?) && list.length == 2 true else log_error(NAME) {"list is not a pair of literals: #{list.to_sxp}"} false end end |