class SPARQL::Algebra::Operator::SHA256

The SPARQL logical `sha256` operator.

Returns the SHA256 checksum, as a hex digit string, calculated on the UTF-8 representation of the simple literal or lexical form of the `xsd:string`. Hex digits `SHOULD` be in lower case.

@example

(prefix ((: <http://example.org/>))
  (project (?hash)
    (extend ((?hash (sha256 ?l)))
      (bgp (triple :s1 :str ?l)))))

@see www.w3.org/TR/sparql11-query/#func-sha256

Constants

NAME

Public Instance Methods

apply(operand, **options) click to toggle source

Returns the SHA256 checksum, as a hex digit string, calculated on the UTF-8 representation of the simple literal or lexical form of the xsd:string. Hex digits should be in lower case.

@param [RDF::Literal] operand

the operand

@return [RDF::Literal] @raise [TypeError] if the operand is not a simple literal

# File lib/sparql/algebra/operator/sha256.rb, line 29
def apply(operand, **options)
  raise TypeError, "expected an RDF::Literal, but got #{operand.inspect}" unless operand.literal?
  raise TypeError, "expected simple literal or xsd:string, but got #{operand.inspect}" unless (operand.datatype || RDF::XSD.string) == RDF::XSD.string
  RDF::Literal(Digest::SHA256.new.hexdigest(operand.to_s))
end