module RDF::Serializers::DataTypeHelper

Public Instance Methods

xsd_to_rdf(xsd, value, opts = {}) click to toggle source
# File lib/rdf/serializers/data_type_helper.rb, line 6
def xsd_to_rdf(xsd, value, opts = {}) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
  klass =
    case xsd
    when RDF::XSD[:anyURI]
      RDF::URI
    when RDF::XSD[:integer]
      RDF::Literal::Integer
    when RDF::XSD[:dateTime]
      RDF::Literal::DateTime
    when RDF::XSD[:date]
      RDF::Literal::Date
    when RDF::XSD[:boolean]
      RDF::Literal::Boolean
    when RDF::XSD[:time]
      RDF::Literal::Time
    when RDF::XSD[:long], RDF::XSD[:double]
      RDF::Literal::Double
    when RDF::XSD[:decimal]
      RDF::Literal::Decimal
    when RDF::XSD[:token]
      RDF::Literal::Token
    else
      RDF::Literal
    end

  klass.new(value, opts)
end