Class: SPARQL::Algebra::Operator::Floor
- Inherits:
-
Unary
- Object
- SPARQL::Algebra::Operator
- Unary
- SPARQL::Algebra::Operator::Floor
- Includes:
- Evaluatable
- Defined in:
- lib/sparql/algebra/operator/floor.rb
Overview
The SPARQL logical floor
operator.
[121] BuiltInCall ::= … ‘FLOOR’ ‘(’ Expression ‘)’
Constant Summary collapse
- NAME =
[:floor]
Constants inherited from Unary
Constants inherited from SPARQL::Algebra::Operator
Constants included from Expression
Instance Attribute Summary
Attributes inherited from SPARQL::Algebra::Operator
Instance Method Summary collapse
-
#apply(operand, **options) ⇒ RDF::Literal
Returns the largest (closest to positive infinity) number with no fractional part that is not greater than the value of
arg
. -
#to_sparql(**options) ⇒ String
Returns a partial SPARQL grammar for this operator.
Methods included from Evaluatable
#evaluate, #memoize, #replace_aggregate!, #replace_vars!
Methods inherited from Unary
Methods inherited from SPARQL::Algebra::Operator
#aggregate?, arity, #base_uri, base_uri, base_uri=, #bind, #boolean, #constant?, #deep_dup, #each_descendant, #eql?, #evaluatable?, evaluate, #executable?, #first_ancestor, for, #initialize, #inspect, #ndvars, #node?, #operand, #optimize, #optimize!, #parent, #parent=, #prefixes, prefixes, prefixes=, #rewrite, #to_binary, to_sparql, #to_sxp, #to_sxp_bin, #validate!, #variable?, #variables, #vars
Methods included from Expression
cast, #constant?, #evaluate, extension, extension?, extensions, for, #invalid?, new, #node?, open, #optimize, #optimize!, parse, register_extension, #to_sxp_bin, #valid?, #validate!, #variable?
Constructor Details
This class inherits a constructor from SPARQL::Algebra::Operator::Unary
Instance Method Details
#apply(operand, **options) ⇒ RDF::Literal
Returns the largest (closest to positive infinity) number with no fractional part that is not greater than the value of arg
. An error is raised if arg
is not a numeric value.
If type of $arg is one of the four numeric types xs:float, xs:double, xs:decimal or xs:integer the type of the result is the same as the type of $arg. If the type of $arg is a type derived from one of the numeric types, the result is an instance of the base numeric type.
For float and double arguments, if the argument is positive zero, then positive zero is returned. If the argument is negative zero, then negative zero is returned.
41 42 43 44 45 46 |
# File 'lib/sparql/algebra/operator/floor.rb', line 41 def apply(operand, **) case operand when RDF::Literal::Numeric then operand.floor else raise TypeError, "expected an RDF::Literal::Numeric, but got #{operand.inspect}" end end |
#to_sparql(**options) ⇒ String
Returns a partial SPARQL grammar for this operator.
53 54 55 |
# File 'lib/sparql/algebra/operator/floor.rb', line 53 def to_sparql(**) "FLOOR(#{operands.to_sparql(**)})" end |