class SPARQL::Algebra::Operator::SHA384

The SPARQL logical `sha1` operator.

Returns the SHA384 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 (sha384 ?l)))
      (bgp (triple :s1 :str ?l)))))

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

Constants

NAME

Public Instance Methods

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

Returns the SHA384 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/sha384.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::SHA384.new.hexdigest(operand.to_s))
end