lib/sxp/reader/sparql.rb in sxp-0.0.12 vs lib/sxp/reader/sparql.rb in sxp-0.0.13
- old
+ new
@@ -6,10 +6,11 @@
#
# Requires [RDF.rb](http://rdf.rubyforge.org/).
#
# @see http://openjena.org/wiki/SSE
class SPARQL < Extended
+ NIL = /^nil$/i
FALSE = /^false$/i
TRUE = /^true$/i
EXPONENT = /[eE][+-]?[0-9]+/
DECIMAL = /^[+-]?(\d*)?\.\d*#{EXPONENT}?$/
BNODE_ID = /^_:([A-Za-z][A-Za-z0-9]*)/ # FIXME
@@ -62,9 +63,10 @@
##
# @return [Object]
def read_atom
case buffer = read_literal
when '.' then buffer.to_sym
+ when NIL then nil
when FALSE then RDF::Literal(false)
when TRUE then RDF::Literal(true)
when DECIMAL then RDF::Literal(Float(buffer[-1].eql?(?.) ? buffer + '0' : buffer))
when INTEGER then RDF::Literal(Integer(buffer))
when BNODE_ID then RDF::Node($1)