class RDF::Literal

Public Instance Methods

as_datetime() click to toggle source

Parse the value as a dateTime literal, or return now.

@return [RDF::Literal::DateTime]

# File lib/rdf/n3/extensions.rb, line 105
def as_datetime
  return self if is_a?(RDF::Literal::DateTime)
  mvalue = value
  mvalue = "#{mvalue}-01" if mvalue.match?(%r(^\d{4}$))
  mvalue = "#{mvalue}-01" if mvalue.match?(%r(^\d{4}-\d{2}$))
  RDF::Literal::DateTime.new(::DateTime.iso8601(mvalue), lexical: value)
rescue
  RDF::Literal(0)
end
as_number() click to toggle source

Parse the value as a numeric literal, or return 0.

@return [RDF::Literal::Numeric]

# File lib/rdf/n3/extensions.rb, line 90
def as_number
  return self if self.is_a?(RDF::Literal::Numeric)
  case value
  when DOUBLE  then RDF::Literal::Double.new(value)
  when DECIMAL then RDF::Literal::Decimal.new(value)
  when INTEGER then RDF::Literal::Integer.new(value)
  else
    RDF::Literal(0)
  end
end