rdf 2.1.1 → 2.2.0.pre.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rdf.rb +2 -2
- data/lib/rdf/changeset.rb +2 -2
- data/lib/rdf/cli.rb +18 -12
- data/lib/rdf/format.rb +1 -1
- data/lib/rdf/mixin/enumerable.rb +22 -7
- data/lib/rdf/mixin/enumerator.rb +40 -4
- data/lib/rdf/mixin/queryable.rb +3 -3
- data/lib/rdf/model/dataset.rb +1 -1
- data/lib/rdf/model/graph.rb +4 -4
- data/lib/rdf/model/literal.rb +42 -20
- data/lib/rdf/model/literal/boolean.rb +5 -6
- data/lib/rdf/model/literal/date.rb +5 -6
- data/lib/rdf/model/literal/datetime.rb +3 -4
- data/lib/rdf/model/literal/decimal.rb +12 -8
- data/lib/rdf/model/literal/double.rb +5 -6
- data/lib/rdf/model/literal/integer.rb +6 -7
- data/lib/rdf/model/literal/time.rb +5 -6
- data/lib/rdf/model/literal/token.rb +6 -7
- data/lib/rdf/model/node.rb +1 -1
- data/lib/rdf/model/statement.rb +43 -15
- data/lib/rdf/model/uri.rb +23 -5
- data/lib/rdf/nquads.rb +2 -2
- data/lib/rdf/ntriples/reader.rb +13 -10
- data/lib/rdf/ntriples/writer.rb +18 -19
- data/lib/rdf/query.rb +33 -30
- data/lib/rdf/query/hash_pattern_normalizer.rb +2 -2
- data/lib/rdf/query/pattern.rb +5 -4
- data/lib/rdf/query/solution.rb +25 -13
- data/lib/rdf/query/variable.rb +20 -2
- data/lib/rdf/reader.rb +33 -22
- data/lib/rdf/repository.rb +2 -2
- data/lib/rdf/transaction.rb +1 -1
- data/lib/rdf/util/file.rb +34 -41
- data/lib/rdf/util/logger.rb +36 -36
- data/lib/rdf/util/uuid.rb +3 -2
- data/lib/rdf/vocab/writer.rb +4 -4
- data/lib/rdf/vocabulary.rb +10 -12
- data/lib/rdf/writer.rb +32 -22
- metadata +6 -6
data/lib/rdf/vocabulary.rb
CHANGED
@@ -154,7 +154,7 @@ module RDF
|
|
154
154
|
# Shortcut for `rdf:type`, values are String interpreted as a {URI}.
|
155
155
|
# @return [RDF::Vocabulary::Term]
|
156
156
|
#
|
157
|
-
# @note If the ontology URI has the vocabulary namespace URI as a prefix, it may also be defined using
|
157
|
+
# @note If the ontology URI has the vocabulary namespace URI as a prefix, it may also be defined using `#property` or `#term`
|
158
158
|
def ontology(*args)
|
159
159
|
case args.length
|
160
160
|
when 0
|
@@ -564,16 +564,18 @@ module RDF
|
|
564
564
|
attr_accessor :attributes
|
565
565
|
|
566
566
|
##
|
567
|
-
# @overload URI(uri, options
|
567
|
+
# @overload URI(uri, **options)
|
568
568
|
# @param [URI, String, #to_s] uri
|
569
|
+
# @param [Hash{Symbol,Resource => Term, #to_s}] attributes
|
570
|
+
# Attributes of this vocabulary term, used for finding `label` and `comment` and to serialize the term back to RDF
|
569
571
|
# @param [Hash{Symbol => Object}] options
|
570
572
|
# @option options [Boolean] :validate (false)
|
571
573
|
# @option options [Boolean] :canonicalize (false)
|
572
|
-
# @option options [Hash{Symbol,Resource => Term, #to_s}] :attributes
|
573
|
-
# Attributes of this vocabulary term, used for finding `label` and `comment` and to serialize the term back to RDF
|
574
574
|
#
|
575
|
-
# @overload URI(options
|
575
|
+
# @overload URI(**options)
|
576
576
|
# @param [Hash{Symbol => Object}] options
|
577
|
+
# @param [Hash{Symbol,Resource => Term, #to_s}] attributes
|
578
|
+
# Attributes of this vocabulary term, used for finding `label` and `comment` and to serialize the term back to RDF
|
577
579
|
# @option options options [Boolean] :validate (false)
|
578
580
|
# @option options options [Boolean] :canonicalize (false)
|
579
581
|
# @option options [Vocabulary] :vocab The {Vocabulary} associated with this term.
|
@@ -591,14 +593,10 @@ module RDF
|
|
591
593
|
# @option options [String, #to_s] :path The path component.
|
592
594
|
# @option options [String, #to_s] :query The query component.
|
593
595
|
# @option options [String, #to_s] :fragment The fragment component.
|
594
|
-
|
595
|
-
|
596
|
-
def initialize(*args, **options)
|
597
|
-
@attributes = options.fetch(:attributes)
|
596
|
+
def initialize(*args, attributes:, **options)
|
597
|
+
@attributes = attributes
|
598
598
|
if RUBY_ENGINE == "rbx"
|
599
|
-
|
600
|
-
args << options
|
601
|
-
super(*args)
|
599
|
+
super(*args, **options)
|
602
600
|
else
|
603
601
|
super
|
604
602
|
end
|
data/lib/rdf/writer.rb
CHANGED
@@ -79,7 +79,7 @@ module RDF
|
|
79
79
|
# @param [String] filename
|
80
80
|
# @return [Class]
|
81
81
|
#
|
82
|
-
# @overload for(options
|
82
|
+
# @overload for(**options)
|
83
83
|
# Finds an RDF writer class based on various options.
|
84
84
|
#
|
85
85
|
# @param [Hash{Symbol => Object}] options
|
@@ -154,26 +154,29 @@ module RDF
|
|
154
154
|
# the graph or repository to dump
|
155
155
|
# @param [IO, File, String] io
|
156
156
|
# the output stream or file to write to
|
157
|
+
# @param [Encoding, String, Symbol] encoding
|
158
|
+
# the encoding to use on the output stream.
|
159
|
+
# Defaults to the format associated with `content_encoding`.
|
157
160
|
# @param [Hash{Symbol => Object}] options
|
158
161
|
# passed to {RDF::Writer#initialize} or {RDF::Writer.buffer}
|
159
162
|
# @return [void]
|
160
|
-
def self.dump(data, io = nil,
|
163
|
+
def self.dump(data, io = nil, encoding: nil, **options)
|
161
164
|
if io.is_a?(String)
|
162
165
|
io = File.open(io, 'w')
|
163
166
|
elsif io.respond_to?(:external_encoding) && io.external_encoding
|
164
|
-
|
167
|
+
encoding ||= io.external_encoding
|
165
168
|
end
|
166
|
-
io.set_encoding(
|
169
|
+
io.set_encoding(encoding) if io.respond_to?(:set_encoding) && encoding
|
167
170
|
method = data.respond_to?(:each_statement) ? :each_statement : :each
|
168
171
|
if io
|
169
|
-
new(io, options) do |writer|
|
172
|
+
new(io, encoding: encoding, **options) do |writer|
|
170
173
|
data.send(method) do |statement|
|
171
174
|
writer << statement
|
172
175
|
end
|
173
176
|
writer.flush
|
174
177
|
end
|
175
178
|
else
|
176
|
-
buffer(options) do |writer|
|
179
|
+
buffer(encoding: encoding, **options) do |writer|
|
177
180
|
data.send(method) do |statement|
|
178
181
|
writer << statement
|
179
182
|
end
|
@@ -184,19 +187,23 @@ module RDF
|
|
184
187
|
##
|
185
188
|
# Buffers output into a string buffer.
|
186
189
|
#
|
190
|
+
# @param [Encoding, String, Symbol] encoding
|
191
|
+
# the encoding to use on the output stream.
|
192
|
+
# Defaults to the format associated with `content_encoding`.
|
193
|
+
# @param [Hash{Symbol => Object}] options
|
194
|
+
# passed to {RDF::Writer#initialize}
|
187
195
|
# @yield [writer]
|
188
196
|
# @yieldparam [RDF::Writer] writer
|
189
197
|
# @yieldreturn [void]
|
190
198
|
# @return [String]
|
191
199
|
# @raise [ArgumentError] if no block is provided
|
192
|
-
def self.buffer(*args, &block)
|
193
|
-
|
194
|
-
options[:encoding] ||= Encoding::UTF_8 if RUBY_PLATFORM == "java"
|
200
|
+
def self.buffer(*args, encoding: nil, **options, &block)
|
201
|
+
encoding ||= Encoding::UTF_8 if RUBY_PLATFORM == "java"
|
195
202
|
raise ArgumentError, "block expected" unless block_given?
|
196
203
|
|
197
204
|
StringIO.open do |buffer|
|
198
|
-
buffer.set_encoding(
|
199
|
-
self.new(buffer, *args) { |writer| block.call(writer) }
|
205
|
+
buffer.set_encoding(encoding) if encoding
|
206
|
+
self.new(buffer, *args, encoding: encoding, **options) { |writer| block.call(writer) }
|
200
207
|
buffer.string
|
201
208
|
end
|
202
209
|
end
|
@@ -205,16 +212,19 @@ module RDF
|
|
205
212
|
# Writes output to the given `filename`.
|
206
213
|
#
|
207
214
|
# @param [String, #to_s] filename
|
215
|
+
# @param [Encoding, String, Symbol] encoding
|
216
|
+
# the encoding to use on the output stream.
|
217
|
+
# Defaults to the format associated with `content_encoding`.
|
218
|
+
# @param [Symbol] format (nil)
|
208
219
|
# @param [Hash{Symbol => Object}] options
|
209
220
|
# any additional options (see {RDF::Writer#initialize} and {RDF::Format.for})
|
210
|
-
# @option options [Symbol] :format (nil)
|
211
221
|
# @return [RDF::Writer]
|
212
|
-
def self.open(filename,
|
222
|
+
def self.open(filename, encoding: nil, format: nil, **options, &block)
|
213
223
|
File.open(filename, 'wb') do |file|
|
214
|
-
file.set_encoding(
|
224
|
+
file.set_encoding(encoding) if encoding
|
215
225
|
format_options = options.dup
|
216
226
|
format_options[:file_name] ||= filename
|
217
|
-
self.for(
|
227
|
+
self.for(format || format_options).new(file, encoding: encoding, **options, &block)
|
218
228
|
end
|
219
229
|
end
|
220
230
|
|
@@ -256,7 +266,7 @@ module RDF
|
|
256
266
|
# @yield [writer] `self`
|
257
267
|
# @yieldparam [RDF::Writer] writer
|
258
268
|
# @yieldreturn [void]
|
259
|
-
def initialize(output = $stdout, options
|
269
|
+
def initialize(output = $stdout, **options, &block)
|
260
270
|
@output, @options = output, options.dup
|
261
271
|
@nodes, @node_id, @node_id_map = {}, 0, {}
|
262
272
|
|
@@ -421,7 +431,7 @@ module RDF
|
|
421
431
|
|
422
432
|
# Make sure BNodes in statement use unique identifiers
|
423
433
|
if statement.node?
|
424
|
-
|
434
|
+
statement.to_quad.map do |term|
|
425
435
|
if term.is_a?(RDF::Node)
|
426
436
|
term = term.original while term.original
|
427
437
|
@nodes[term] ||= begin
|
@@ -480,7 +490,7 @@ module RDF
|
|
480
490
|
# @param [RDF::Term] term
|
481
491
|
# @return [String]
|
482
492
|
# @since 0.3.0
|
483
|
-
def format_term(term, options
|
493
|
+
def format_term(term, **options)
|
484
494
|
case term
|
485
495
|
when String then format_literal(RDF::Literal(term, options), options)
|
486
496
|
when RDF::List then format_list(term, options)
|
@@ -499,7 +509,7 @@ module RDF
|
|
499
509
|
# @return [String]
|
500
510
|
# @raise [NotImplementedError] unless implemented in subclass
|
501
511
|
# @abstract
|
502
|
-
def format_node(value, options
|
512
|
+
def format_node(value, **options)
|
503
513
|
raise NotImplementedError.new("#{self.class}#format_node") # override in subclasses
|
504
514
|
end
|
505
515
|
|
@@ -509,7 +519,7 @@ module RDF
|
|
509
519
|
# @return [String]
|
510
520
|
# @raise [NotImplementedError] unless implemented in subclass
|
511
521
|
# @abstract
|
512
|
-
def format_uri(value, options
|
522
|
+
def format_uri(value, **options)
|
513
523
|
raise NotImplementedError.new("#{self.class}#format_uri") # override in subclasses
|
514
524
|
end
|
515
525
|
|
@@ -519,7 +529,7 @@ module RDF
|
|
519
529
|
# @return [String]
|
520
530
|
# @raise [NotImplementedError] unless implemented in subclass
|
521
531
|
# @abstract
|
522
|
-
def format_literal(value, options
|
532
|
+
def format_literal(value, **options)
|
523
533
|
raise NotImplementedError.new("#{self.class}#format_literal") # override in subclasses
|
524
534
|
end
|
525
535
|
|
@@ -529,7 +539,7 @@ module RDF
|
|
529
539
|
# @return [String]
|
530
540
|
# @abstract
|
531
541
|
# @since 0.2.3
|
532
|
-
def format_list(value, options
|
542
|
+
def format_list(value, **options)
|
533
543
|
format_term(value.subject, options)
|
534
544
|
end
|
535
545
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0.pre.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-12-
|
13
|
+
date: 2016-12-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: link_header
|
@@ -150,14 +150,14 @@ dependencies:
|
|
150
150
|
requirements:
|
151
151
|
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
153
|
+
version: '2.3'
|
154
154
|
type: :development
|
155
155
|
prerelease: false
|
156
156
|
version_requirements: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
160
|
+
version: '2.3'
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
162
|
name: yard
|
163
163
|
requirement: !ruby/object:Gem::Requirement
|
@@ -293,9 +293,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
293
293
|
version: 2.2.2
|
294
294
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
295
295
|
requirements:
|
296
|
-
- - "
|
296
|
+
- - ">"
|
297
297
|
- !ruby/object:Gem::Version
|
298
|
-
version:
|
298
|
+
version: 1.3.1
|
299
299
|
requirements: []
|
300
300
|
rubyforge_project: rdf
|
301
301
|
rubygems_version: 2.6.8
|