rdf 3.3.2 → 3.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +12 -5
- data/VERSION +1 -1
- data/lib/rdf/mixin/enumerable.rb +1 -1
- data/lib/rdf/model/graph.rb +31 -1
- data/lib/rdf/model/literal/date.rb +1 -3
- data/lib/rdf/model/literal/decimal.rb +2 -2
- data/lib/rdf/model/literal/double.rb +2 -2
- data/lib/rdf/model/statement.rb +1 -1
- data/lib/rdf/model/uri.rb +31 -10
- data/lib/rdf/ntriples/reader.rb +12 -22
- data/lib/rdf/ntriples/writer.rb +1 -1
- data/lib/rdf/reader.rb +1 -1
- data/lib/rdf/repository.rb +1 -1
- data/lib/rdf/util/file.rb +10 -1
- metadata +43 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 061dd8c1cc1312a0637faec70a4aff5c8f6872e333c225563cd0f426e46b1021
|
4
|
+
data.tar.gz: 1abd0cfb43de3db148b5930165c0fdf494e1313c577a14b93d8385def05885d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 272d88f2911164ecc3a2fa71f485e4f6f789252b9f7f5d2c5b222e60dd65ebf5acf0843de3c68910e6e795ebe3003eca2f956ca309eff8afae13694fe5de94a5
|
7
|
+
data.tar.gz: 385f3ff6159082e189d8cfb47bfe4c77243e7c5c18558e5d7a3cd5701d75cebab29f250d7ba28c1f4d7ba5e6564a51236ca367a832534d666c7fc4a4a831bb8a
|
data/README.md
CHANGED
@@ -280,19 +280,24 @@ Internally, an `RDF::Statement` is treated as another resource, along with `RDF:
|
|
280
280
|
|
281
281
|
**Note: This feature is subject to change or elimination as the standards process progresses.**
|
282
282
|
|
283
|
-
### Serializing a Graph containing
|
283
|
+
### Serializing a Graph containing triple terms
|
284
284
|
|
285
285
|
require 'rdf/ntriples'
|
286
286
|
statement = RDF::Statement(RDF::URI('bob'), RDF::Vocab::FOAF.age, RDF::Literal(23))
|
287
|
-
|
287
|
+
reifier = RDF::Node.new
|
288
|
+
graph = RDF::Graph.new do |g|
|
289
|
+
g << [reifier, RDF.reifies, statement]
|
290
|
+
g << [reifier, RDF::URI("ex:certainty"), RDF::Literal(0.9)]
|
291
|
+
end
|
288
292
|
graph.dump(:ntriples, validate: false)
|
289
|
-
#
|
293
|
+
# ==> '_:bn <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> <<(<bob> <http://xmlns.com/foaf/0.1/age> "23"^^<http://www.w3.org/2001/XMLSchema#integer>)>> .
|
294
|
+
_:bn <ex:certainty> "0.9"^^<http://www.w3.org/2001/XMLSchema#double> .'
|
290
295
|
|
291
|
-
### Reading a Graph containing
|
296
|
+
### Reading a Graph containing triple terms
|
292
297
|
|
293
298
|
By default, the N-Triples reader will reject a document containing a subject resource.
|
294
299
|
|
295
|
-
nt = '
|
300
|
+
nt = '<<(<bob> <http://xmlns.com/foaf/0.1/age> "23"^^<http://www.w3.org/2001/XMLSchema#integer>)>> <ex:certainty> "0.9"^^<http://www.w3.org/2001/XMLSchema#double> .'
|
296
301
|
graph = RDF::Graph.new do |graph|
|
297
302
|
RDF::NTriples::Reader.new(nt) {|reader| graph << reader}
|
298
303
|
end
|
@@ -346,6 +351,7 @@ other gems:
|
|
346
351
|
* [RDF::TriG][] (extension)
|
347
352
|
* [RDF::TriX][] (extension)
|
348
353
|
* [RDF::Turtle][] (extension)
|
354
|
+
* [RDF::Borsh][] (extension)
|
349
355
|
|
350
356
|
The meta-gem [LinkedData][LinkedData doc] includes many of these gems.
|
351
357
|
|
@@ -511,6 +517,7 @@ see <https://unlicense.org/> or the accompanying {file:UNLICENSE} file.
|
|
511
517
|
[RDF 1.2]: https://www.w3.org/TR/rdf12-concepts/
|
512
518
|
[SPARQL 1.1]: https://www.w3.org/TR/sparql11-query/
|
513
519
|
[RDF.rb]: https://ruby-rdf.github.io/
|
520
|
+
[RDF::Borsh]: https://ruby-rdf.github.io/rdf-borsh
|
514
521
|
[RDF::DO]: https://ruby-rdf.github.io/rdf-do
|
515
522
|
[RDF::Mongo]: https://ruby-rdf.github.io/rdf-mongo
|
516
523
|
[RDF::Sesame]: https://ruby-rdf.github.io/rdf-sesame
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.
|
1
|
+
3.3.3
|
data/lib/rdf/mixin/enumerable.rb
CHANGED
@@ -84,7 +84,7 @@ module RDF
|
|
84
84
|
# * `:validity` allows a concrete Enumerable implementation to indicate that it does or does not support valididty checking. By default implementations are assumed to support validity checking.
|
85
85
|
# * `:skolemize` supports [Skolemization](https://www.w3.org/wiki/BnodeSkolemization) of an `Enumerable`. Implementations supporting this feature must implement a `#skolemize` method, taking a base URI used for minting URIs for BNodes as stable identifiers and a `#deskolemize` method, also taking a base URI used for turning URIs having that prefix back into the same BNodes which were originally skolemized.
|
86
86
|
# * `:rdf_full` supports RDF 1.2 Full profile, including support for embedded Triple Terms.
|
87
|
-
# * `:quoted_triples` supports RDF-star quoted triples.
|
87
|
+
# * `:quoted_triples` supports RDF-star quoted triples. (DEPRECATED)
|
88
88
|
# * `:base_direction` supports RDF 1.2 directional language-tagged strings.
|
89
89
|
#
|
90
90
|
# @param [Symbol, #to_sym] feature
|
data/lib/rdf/model/graph.rb
CHANGED
@@ -20,7 +20,7 @@ module RDF
|
|
20
20
|
#
|
21
21
|
# @example Loading graph data from a URL
|
22
22
|
# require 'rdf/rdfxml' # for RDF/XML support
|
23
|
-
#
|
23
|
+
#
|
24
24
|
# graph = RDF::Graph.load("http://www.bbc.co.uk/programmes/b0081dq5.rdf")
|
25
25
|
#
|
26
26
|
# @example Accessing a specific named graph within a {RDF::Repository}
|
@@ -250,6 +250,36 @@ module RDF
|
|
250
250
|
end
|
251
251
|
alias_method :has_statement?, :statement?
|
252
252
|
|
253
|
+
##
|
254
|
+
# Returns `true` if `self` contains the given RDF subject term.
|
255
|
+
#
|
256
|
+
# @param [RDF::Resource] value
|
257
|
+
# @return [Boolean]
|
258
|
+
def subject? value
|
259
|
+
!@data.query({ subject: value, graph_name: graph_name || false }).empty?
|
260
|
+
end
|
261
|
+
alias_method :has_subject?, :subject?
|
262
|
+
|
263
|
+
##
|
264
|
+
# Returns `true` if `self` contains the given RDF predicate term.
|
265
|
+
#
|
266
|
+
# @param [RDF::URI] value
|
267
|
+
# @return [Boolean]
|
268
|
+
def predicate? value
|
269
|
+
!@data.query({ predicate: value, graph_name: graph_name || false }).empty?
|
270
|
+
end
|
271
|
+
alias_method :has_predicate?, :predicate?
|
272
|
+
|
273
|
+
##
|
274
|
+
# Returns `true` if `self` contains the given RDF object term.
|
275
|
+
#
|
276
|
+
# @param [RDF::Term] value
|
277
|
+
# @return [Boolean]
|
278
|
+
def object? value
|
279
|
+
!@data.query({ object: value, graph_name: graph_name || false }).empty?
|
280
|
+
end
|
281
|
+
alias_method :has_object?, :object?
|
282
|
+
|
253
283
|
##
|
254
284
|
# Enumerates each RDF statement in this graph.
|
255
285
|
#
|
@@ -26,9 +26,7 @@ module RDF; class Literal
|
|
26
26
|
# Use midnight as midpoint of the interval
|
27
27
|
::DateTime.parse(value.strftime('%FT00:00:00'))
|
28
28
|
when value.respond_to?(:to_datetime)
|
29
|
-
|
30
|
-
@zone = dt.zone
|
31
|
-
dt
|
29
|
+
value.to_datetime
|
32
30
|
else
|
33
31
|
md = value.to_s.match(GRAMMAR)
|
34
32
|
_, dt, tz = Array(md)
|
@@ -12,10 +12,10 @@ module RDF; class Literal
|
|
12
12
|
# @since 0.2.1
|
13
13
|
class Decimal < Numeric
|
14
14
|
DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#decimal")
|
15
|
-
GRAMMAR = /^[\+\-]
|
15
|
+
GRAMMAR = /^[\+\-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))$/.freeze
|
16
16
|
|
17
17
|
##
|
18
|
-
# @param [String,
|
18
|
+
# @param [String, BigDecimal, Numeric] value
|
19
19
|
# @param (see Literal#initialize)
|
20
20
|
def initialize(value, datatype: nil, lexical: nil, **options)
|
21
21
|
@datatype = RDF::URI(datatype || self.class.const_get(:DATATYPE))
|
@@ -12,7 +12,7 @@ module RDF; class Literal
|
|
12
12
|
# @since 0.2.1
|
13
13
|
class Double < Numeric
|
14
14
|
DATATYPE = RDF::URI("http://www.w3.org/2001/XMLSchema#double")
|
15
|
-
GRAMMAR = /^(?:NaN
|
15
|
+
GRAMMAR = /^(?:NaN|[+\-]?INF|[+\-]?(?:\d+(:?\.\d*)?|\.\d+)(?:[eE][\+\-]?\d+)?)$/.freeze
|
16
16
|
|
17
17
|
##
|
18
18
|
# @param [String, Float, #to_f] value
|
@@ -26,7 +26,7 @@ module RDF; class Literal
|
|
26
26
|
when 'INF' then 1/0.0
|
27
27
|
when '-INF' then -1/0.0
|
28
28
|
when 'NAN' then 0/0.0
|
29
|
-
else Float(value.sub(/\.[eE]/, '.0E')) rescue nil
|
29
|
+
else Float(value.sub(/\.[eE]/, '.0E').sub(/\.$/, '.0')) rescue nil
|
30
30
|
end
|
31
31
|
when value.is_a?(::Float) then value
|
32
32
|
when value.respond_to?(:to_f) then value.to_f
|
data/lib/rdf/model/statement.rb
CHANGED
data/lib/rdf/model/uri.rb
CHANGED
@@ -80,6 +80,10 @@ module RDF
|
|
80
80
|
# scheme, authority, path, query, fragment
|
81
81
|
IRI_PARTS = /^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(\?[^#]*)?(#.*)?$/.freeze
|
82
82
|
|
83
|
+
# Special version for file-scheme on Windows (path SHOULD begin with /, but may not)
|
84
|
+
# scheme, authority, path, query, fragment
|
85
|
+
FILE_PARTS = /^file:(?:\/\/(#{IHOST}))?(\/?[^?#]*)(\?[^#]*)?(#.*)?$/.freeze
|
86
|
+
|
83
87
|
# Remove dot expressions regular expressions
|
84
88
|
RDS_2A = /^\.?\.\/(.*)$/.freeze
|
85
89
|
RDS_2B1 = /^\/\.$/.freeze
|
@@ -160,7 +164,7 @@ module RDF
|
|
160
164
|
# (see #initialize)
|
161
165
|
# @return [RDF::URI] an immutable, frozen URI object
|
162
166
|
def self.intern(str, *args, **options)
|
163
|
-
(cache[(str = str.to_s).to_sym] ||= self.new(str, *args, **options)).freeze
|
167
|
+
(cache[(str = str.to_s).to_sym] ||= self.new(str.to_s, *args, **options)).freeze
|
164
168
|
end
|
165
169
|
|
166
170
|
##
|
@@ -716,8 +720,8 @@ module RDF
|
|
716
720
|
##
|
717
721
|
# @private
|
718
722
|
def freeze
|
719
|
-
|
720
|
-
|
723
|
+
@mutex.synchronize do
|
724
|
+
unless frozen?
|
721
725
|
# Create derived components
|
722
726
|
authority; userinfo; user; password; host; port
|
723
727
|
@value = value.freeze
|
@@ -851,8 +855,7 @@ module RDF
|
|
851
855
|
# lexical representation of URI, either absolute or relative
|
852
856
|
# @return [String]
|
853
857
|
def value
|
854
|
-
|
855
|
-
@value = [
|
858
|
+
@value ||= [
|
856
859
|
("#{scheme}:" if absolute?),
|
857
860
|
("//#{authority}" if authority),
|
858
861
|
path,
|
@@ -883,17 +886,35 @@ module RDF
|
|
883
886
|
#
|
884
887
|
# @param [String, to_s] value
|
885
888
|
# @return [Object{Symbol => String}]
|
889
|
+
# @see https://datatracker.ietf.org/doc/html/rfc8089
|
886
890
|
def parse(value)
|
887
|
-
value = value.to_s.dup.force_encoding(Encoding::
|
891
|
+
value = value.to_s.dup.force_encoding(Encoding::UTF_8) unless value && value.encoding == Encoding::UTF_8
|
888
892
|
parts = {}
|
889
|
-
if matchdata =
|
893
|
+
if matchdata = FILE_PARTS.match(value)
|
894
|
+
# A file-based URI is always in the folloring form:
|
895
|
+
# * file:/path - absolute path, no host name
|
896
|
+
# * file:///path - absolute path, empty host name
|
897
|
+
# * file://hostname/path - absolute path with authority.
|
898
|
+
# * file://path – is invalid, but treated as file:///path
|
899
|
+
scheme = 'file'
|
900
|
+
authority, path, query, fragment = matchdata[1..-1]
|
901
|
+
if authority && authority.match?(/^[A-Za-z]$/) && Gem.win_platform?
|
902
|
+
# In this case, if the authority is a drive letter and part of the path
|
903
|
+
authority, path = nil, "#{authority}#{path}"
|
904
|
+
end
|
905
|
+
# We accept paths that aren't absolute, but coerce them to be absolute
|
906
|
+
path = "/#{path}" unless path.start_with?('/')
|
907
|
+
elsif matchdata = IRI_PARTS.match(value)
|
890
908
|
scheme, authority, path, query, fragment = matchdata[1..-1]
|
909
|
+
authority = nil if authority && authority.empty?
|
891
910
|
|
892
|
-
if
|
893
|
-
#
|
894
|
-
scheme, path = nil, "
|
911
|
+
if scheme && scheme.match?(/^[A-Za-z]$/) && Gem.win_platform?
|
912
|
+
# On Windows treat D:/foo/bar as a path, not a scheme
|
913
|
+
scheme, authority, path = 'file', nil, "/#{scheme}:#{path}"
|
895
914
|
end
|
915
|
+
end
|
896
916
|
|
917
|
+
if matchdata
|
897
918
|
userinfo, hostport = authority.to_s.split('@', 2)
|
898
919
|
hostport, userinfo = userinfo, nil unless hostport
|
899
920
|
user, password = userinfo.to_s.split(':', 2)
|
data/lib/rdf/ntriples/reader.rb
CHANGED
@@ -30,7 +30,7 @@ module RDF::NTriples
|
|
30
30
|
#
|
31
31
|
# ** RDF=star
|
32
32
|
#
|
33
|
-
# Supports statements as resources using `<<s p o>>`.
|
33
|
+
# Supports statements as resources using `<<(s p o)>>`.
|
34
34
|
#
|
35
35
|
# @see http://www.w3.org/TR/rdf-testcases/#ntriples
|
36
36
|
# @see http://www.w3.org/TR/n-triples/
|
@@ -40,8 +40,8 @@ module RDF::NTriples
|
|
40
40
|
|
41
41
|
# @see http://www.w3.org/TR/rdf-testcases/#ntrip_strings
|
42
42
|
ESCAPE_CHARS = ["\b", "\f", "\t", "\n", "\r", "\"", "'", "\\"].freeze
|
43
|
-
UCHAR4 =
|
44
|
-
UCHAR8 =
|
43
|
+
UCHAR4 = /(?<!\\)\\(?!\\)u([0-9A-Fa-f]{4,4})/.freeze
|
44
|
+
UCHAR8 = /(?<!\\)\\(?!\\)U([0-9A-Fa-f]{8,8})/.freeze
|
45
45
|
UCHAR = Regexp.union(UCHAR4, UCHAR8).freeze
|
46
46
|
|
47
47
|
|
@@ -73,8 +73,8 @@ module RDF::NTriples
|
|
73
73
|
TT_START = /^<<\(/.freeze
|
74
74
|
TT_END = /^\s*\)>>/.freeze
|
75
75
|
|
76
|
-
QT_START = /^<</.freeze
|
77
|
-
QT_END = /^\s*>>/.freeze
|
76
|
+
QT_START = /^<</.freeze # DEPRECATED
|
77
|
+
QT_END = /^\s*>>/.freeze # DEPRECATED
|
78
78
|
|
79
79
|
# @see http://www.w3.org/TR/rdf-testcases/#ntrip_grammar
|
80
80
|
COMMENT = /^#\s*(.*)$/.freeze
|
@@ -187,22 +187,12 @@ module RDF::NTriples
|
|
187
187
|
# Note: avoiding copying the input string when no escaping is needed
|
188
188
|
# greatly reduces the number of allocations and the processing time.
|
189
189
|
string = string.dup.force_encoding(Encoding::UTF_8) unless string.encoding == Encoding::UTF_8
|
190
|
-
scanner = StringScanner.new(string)
|
191
|
-
|
192
|
-
buffer = ""
|
193
|
-
|
194
|
-
while !scanner.eos?
|
195
|
-
buffer << if scanner.scan(ESCAPE_CHARS_ESCAPED_REGEXP)
|
196
|
-
ESCAPE_CHARS_ESCAPED[scanner.matched]
|
197
|
-
elsif scanner.scan(UCHAR)
|
198
|
-
scanner.matched.sub(UCHAR) {[($1 || $2).hex].pack('U*')}
|
199
|
-
else
|
200
|
-
# Scan one character
|
201
|
-
scanner.getch
|
202
|
-
end
|
203
|
-
end
|
204
190
|
|
205
|
-
|
191
|
+
string
|
192
|
+
.gsub(UCHAR) do
|
193
|
+
[($1 || $2).hex].pack('U*')
|
194
|
+
end
|
195
|
+
.gsub(ESCAPE_CHARS_ESCAPED_REGEXP, ESCAPE_CHARS_ESCAPED)
|
206
196
|
end
|
207
197
|
|
208
198
|
##
|
@@ -259,9 +249,9 @@ module RDF::NTriples
|
|
259
249
|
|
260
250
|
##
|
261
251
|
# @return [RDF::Statement]
|
262
|
-
# @deprecated Quoted triples are now deprecated
|
252
|
+
# @deprecated Quoted triples are now deprecated (not supported when validating)
|
263
253
|
def read_quotedTriple
|
264
|
-
if @options[:rdfstar] && !match(TT_START) && match(QT_START)
|
254
|
+
if @options[:rdfstar] && !match(TT_START) && match(QT_START) && !validate?
|
265
255
|
warn "[DEPRECATION] RDF-star quoted triples are deprecated and will be removed in a future version.\n" +
|
266
256
|
"Called from #{Gem.location_of_caller.join(':')}"
|
267
257
|
subject = read_uriref || read_node || read_quotedTriple || fail_subject
|
data/lib/rdf/ntriples/writer.rb
CHANGED
@@ -230,7 +230,7 @@ module RDF::NTriples
|
|
230
230
|
# @param [Hash{Symbol => Object}] options ({})
|
231
231
|
# @return [String]
|
232
232
|
def format_tripleTerm(statement, **options)
|
233
|
-
"<<(%s %s %s)>>" % statement.to_a.map { |value| format_term(value, **options) }
|
233
|
+
"<<( %s %s %s )>>" % statement.to_a.map { |value| format_term(value, **options) }
|
234
234
|
end
|
235
235
|
|
236
236
|
##
|
data/lib/rdf/reader.rb
CHANGED
@@ -333,7 +333,7 @@ module RDF
|
|
333
333
|
# Returns the base URI determined by this reader.
|
334
334
|
#
|
335
335
|
# @example
|
336
|
-
# reader.
|
336
|
+
# reader.base_uri #=> RDF::URI('http://example.com/')
|
337
337
|
#
|
338
338
|
# @return [RDF::URI]
|
339
339
|
# @since 0.3.0
|
data/lib/rdf/repository.rb
CHANGED
@@ -273,7 +273,7 @@ module RDF
|
|
273
273
|
when :literal_equality then true
|
274
274
|
when :atomic_write then true
|
275
275
|
when :rdf_full then true
|
276
|
-
when :quoted_triples then true
|
276
|
+
when :quoted_triples then true # DEPRECATED
|
277
277
|
when :base_direction then true
|
278
278
|
when :snapshots then true
|
279
279
|
else false
|
data/lib/rdf/util/file.rb
CHANGED
@@ -297,7 +297,6 @@ module RDF; module Util
|
|
297
297
|
# @yieldreturn [Object] returned from open_file
|
298
298
|
# @raise [IOError] if not found
|
299
299
|
def self.open_file(filename_or_url, proxy: nil, headers: {}, verify_none: false, **options, &block)
|
300
|
-
filename_or_url = $1 if filename_or_url.to_s.match(/^file:(.*)$/)
|
301
300
|
remote_document = nil
|
302
301
|
|
303
302
|
if filename_or_url.to_s.match?(/^https?/)
|
@@ -319,6 +318,16 @@ module RDF; module Util
|
|
319
318
|
url_no_frag_or_query.query = nil
|
320
319
|
url_no_frag_or_query.fragment = nil
|
321
320
|
options[:encoding] ||= Encoding::UTF_8
|
321
|
+
|
322
|
+
# Just use path if there's a file scheme. This leaves out a potential host, which isn't supported anyway.
|
323
|
+
if url_no_frag_or_query.scheme == 'file'
|
324
|
+
url_no_frag_or_query = url_no_frag_or_query.path
|
325
|
+
if url_no_frag_or_query.match?(/^\/[A-Za-z]:/) && Gem.win_platform?
|
326
|
+
# Turns "/D:foo" into "D:foo"
|
327
|
+
url_no_frag_or_query = url_no_frag_or_query[1..-1]
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
322
331
|
Kernel.open(url_no_frag_or_query, "r", **options) do |file|
|
323
332
|
document_options = {
|
324
333
|
base_uri: filename_or_url.to_s,
|
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: 3.3.
|
4
|
+
version: 3.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -10,8 +10,42 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2025-06-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bcp47_spec
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - "~>"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.2'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - "~>"
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0.2'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: bigdecimal
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '3.1'
|
36
|
+
- - ">="
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 3.1.5
|
39
|
+
type: :runtime
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - "~>"
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '3.1'
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 3.1.5
|
15
49
|
- !ruby/object:Gem::Dependency
|
16
50
|
name: link_header
|
17
51
|
requirement: !ruby/object:Gem::Requirement
|
@@ -33,39 +67,33 @@ dependencies:
|
|
33
67
|
- !ruby/object:Gem::Version
|
34
68
|
version: 0.0.8
|
35
69
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
70
|
+
name: logger
|
37
71
|
requirement: !ruby/object:Gem::Requirement
|
38
72
|
requirements:
|
39
73
|
- - "~>"
|
40
74
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
75
|
+
version: '1.5'
|
42
76
|
type: :runtime
|
43
77
|
prerelease: false
|
44
78
|
version_requirements: !ruby/object:Gem::Requirement
|
45
79
|
requirements:
|
46
80
|
- - "~>"
|
47
81
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
82
|
+
version: '1.5'
|
49
83
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
84
|
+
name: ostruct
|
51
85
|
requirement: !ruby/object:Gem::Requirement
|
52
86
|
requirements:
|
53
87
|
- - "~>"
|
54
88
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
56
|
-
- - ">="
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
version: 3.1.5
|
89
|
+
version: '0.6'
|
59
90
|
type: :runtime
|
60
91
|
prerelease: false
|
61
92
|
version_requirements: !ruby/object:Gem::Requirement
|
62
93
|
requirements:
|
63
94
|
- - "~>"
|
64
95
|
- !ruby/object:Gem::Version
|
65
|
-
version: '
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 3.1.5
|
96
|
+
version: '0.6'
|
69
97
|
- !ruby/object:Gem::Dependency
|
70
98
|
name: base64
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -336,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
336
364
|
- !ruby/object:Gem::Version
|
337
365
|
version: '0'
|
338
366
|
requirements: []
|
339
|
-
rubygems_version: 3.
|
367
|
+
rubygems_version: 3.2.33
|
340
368
|
signing_key:
|
341
369
|
specification_version: 4
|
342
370
|
summary: A Ruby library for working with Resource Description Framework (RDF) data.
|