@@ -104,13 +104,13 @@ def self.datatyped_class(uri)
104104
105105 ##
106106 # @private
107- def self . new ( value , options = { } )
108- raise ArgumentError , "datatype with language must be rdf:langString" if options [ : language] && ( options [ : datatype] || RDF . langString ) . to_s != RDF . langString . to_s
107+ def self . new ( value , language : nil , datatype : nil , lexical : nil , validate : false , canonicalize : false , ** options )
108+ raise ArgumentError , "datatype with language must be rdf:langString" if language && ( datatype || RDF . langString ) . to_s != RDF . langString . to_s
109109
110110 klass = case
111111 when !self . equal? ( RDF ::Literal )
112112 self # subclasses can be directly constructed without type dispatch
113- when typed_literal = datatyped_class ( options [ : datatype] . to_s )
113+ when typed_literal = datatyped_class ( datatype . to_s )
114114 typed_literal
115115 else case value
116116 when ::TrueClass then RDF ::Literal ::Boolean
@@ -126,9 +126,9 @@ def self.new(value, options = {})
126126 end
127127 end
128128 literal = klass . allocate
129- literal . send ( :initialize , value , options )
130- literal . validate! if options [ : validate]
131- literal . canonicalize! if options [ : canonicalize]
129+ literal . send ( :initialize , value , language : language , datatype : datatype , ** options )
130+ literal . validate! if validate
131+ literal . canonicalize! if canonicalize
132132 literal
133133 end
134134
@@ -147,28 +147,28 @@ def self.new(value, options = {})
147147 # depending on if there is language
148148 #
149149 # @param [Object] value
150- # @option options [Symbol] : language (nil)
150+ # @param [Symbol] language (nil)
151151 # Language is downcased to ensure proper matching
152- # @option options [String] : lexical (nil)
152+ # @param [String] lexical (nil)
153153 # Supplied lexical representation of this literal,
154- # otherwise it comes from transforming `value` to a string form
155- # See {#to_s}.
156- # @option options [URI] :datatype (nil)
157- # @option options [Boolean] :validate (false)
158- # @option options [Boolean] :canonicalize (false)
154+ # otherwise it comes from transforming `value` to a string form..
155+ # @param [URI] datatype (nil)
156+ # @param [Boolean] validate (false)
157+ # @param [Boolean] canonicalize (false)
159158 # @raise [ArgumentError]
160159 # if there is a language and datatype is no rdf:langString
161160 # or datatype is rdf:langString and there is no language
162161 # @see http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal
163162 # @see http://www.w3.org/TR/rdf11-concepts/#section-Datatypes
164- def initialize ( value , options = { } )
163+ # @see #to_s
164+ def initialize ( value , language : nil , datatype : nil , lexical : nil , validate : false , canonicalize : false , **options )
165165 @object = value . freeze
166- @string = options [ : lexical] if options [ : lexical]
166+ @string = lexical if lexical
167167 @string = value if !defined? ( @string ) && value . is_a? ( String )
168168 @string = @string . encode ( Encoding ::UTF_8 ) . freeze if @string
169169 @object = @string if @string && @object . is_a? ( String )
170- @language = options [ : language] . to_s . downcase . to_sym if options [ : language]
171- @datatype = RDF ::URI ( options [ : datatype] ) . freeze if options [ : datatype]
170+ @language = language . to_s . downcase . to_sym if language
171+ @datatype = RDF ::URI ( datatype ) . freeze if datatype
172172 @datatype ||= self . class . const_get ( :DATATYPE ) if self . class . const_defined? ( :DATATYPE )
173173 @datatype ||= @language ? RDF . langString : RDF ::XSD . string
174174 raise ArgumentError , "datatype of rdf:langString requires a language" if !@language && @datatype == RDF ::langString
@@ -441,7 +441,7 @@ def squish!
441441 #
442442 # @param [String] string
443443 # @return [String]
444- # @see { RDF::Term#escape}
444+ # @see RDF::Term#escape
445445 def escape ( string )
446446 string . gsub ( '\\' , '\\\\' ) .
447447 gsub ( "\t " , '\\t' ) .
0 commit comments