spira 3.1.0 → 3.1.1
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 +5 -5
- data/README.md +30 -19
- data/VERSION +1 -1
- data/lib/spira.rb +1 -0
- data/lib/spira/base.rb +4 -4
- data/lib/spira/persistence.rb +11 -11
- data/lib/spira/resource.rb +7 -7
- data/lib/spira/type.rb +2 -2
- data/lib/spira/types/anyURI.rb +1 -1
- data/lib/spira/types/boolean.rb +2 -2
- data/lib/spira/types/date.rb +2 -2
- data/lib/spira/types/dateTime.rb +2 -2
- data/lib/spira/types/decimal.rb +1 -1
- data/lib/spira/types/double.rb +1 -1
- data/lib/spira/types/float.rb +1 -1
- data/lib/spira/types/gYear.rb +2 -2
- data/lib/spira/types/int.rb +2 -2
- data/lib/spira/types/integer.rb +1 -1
- data/lib/spira/types/long.rb +2 -2
- data/lib/spira/types/negativeInteger.rb +2 -2
- data/lib/spira/types/nonNegativeInteger.rb +2 -2
- data/lib/spira/types/nonPositiveInteger.rb +2 -2
- data/lib/spira/types/positiveInteger.rb +2 -2
- data/lib/spira/types/time.rb +2 -2
- data/lib/spira/utils.rb +2 -2
- data/lib/spira/validations.rb +3 -3
- data/lib/spira/validations/uniqueness.rb +1 -1
- metadata +26 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2de3fd45966cc8c2baff9f49b1e2c2e497365e6d7f990fdce4125bc22b9c052b
|
4
|
+
data.tar.gz: 2b3cd2d27357ec52e8c4e0beed5592394779959584d16aa45ec760a832a242da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da9fffd68d240d1051edceb46256cf1d0095d29e44c70057c435d92d8913ab8ef51798938556ce790d986edd08c27a2c65a787ba391f06308d531fbeac7c6e15
|
7
|
+
data.tar.gz: e19e1333efba7bf6a98bd1070e2898b92acd0cbc00ed102c88f9ead82c151d79fec9371235ee5d5bcb18c7e3026b99e84b460a37f3104f2bf32e91c8fd90ffb8
|
data/README.md
CHANGED
@@ -20,12 +20,15 @@ A changelog is available in the {file:CHANGES.md} file.
|
|
20
20
|
### Example
|
21
21
|
|
22
22
|
```ruby
|
23
|
+
require 'spira'
|
24
|
+
require 'rdf/vocab'
|
25
|
+
|
23
26
|
class Person < Spira::Base
|
24
27
|
|
25
|
-
configure :
|
28
|
+
configure base_uri: "http://example.org/example/people"
|
26
29
|
|
27
|
-
property :name, :
|
28
|
-
property :age, :
|
30
|
+
property :name, predicate: RDF::Vocab::FOAF.name, type: String
|
31
|
+
property :age, predicate: RDF::Vocab::FOAF.age, type: Integer
|
29
32
|
|
30
33
|
end
|
31
34
|
|
@@ -110,17 +113,18 @@ without the `RDF::` prefix. For example:
|
|
110
113
|
|
111
114
|
```ruby
|
112
115
|
require 'spira'
|
116
|
+
require 'rdf/vocab'
|
113
117
|
|
114
118
|
class CD < Spira::Base
|
115
|
-
configure :
|
116
|
-
property :name, :
|
117
|
-
property :artist, :
|
119
|
+
configure base_uri: 'http://example.org/cds'
|
120
|
+
property :name, predicate: RDF::Vocab::DC.title, type: XSD.string
|
121
|
+
property :artist, predicate: RDF::URI.new('http://example.org/vocab/artist'), type: :artist
|
118
122
|
end
|
119
123
|
|
120
124
|
class Artist < Spira::Base
|
121
|
-
configure :
|
122
|
-
property :name, :
|
123
|
-
has_many :cds, :
|
125
|
+
configure base_uri: 'http://example.org/artists'
|
126
|
+
property :name, predicate: RDF::Vocab::DC.title, type: XSD.string
|
127
|
+
has_many :cds, predicate: RDF::URI.new('http://example.org/vocab/published_cd'), type: XSD.string
|
124
128
|
end
|
125
129
|
```
|
126
130
|
|
@@ -210,9 +214,12 @@ CD.for RDF::URI.new('http://example.org/cds/queens-greatest-hits')
|
|
210
214
|
A class with a `type` set is assigned an `RDF.type` on creation and saving.
|
211
215
|
|
212
216
|
```ruby
|
217
|
+
require 'spira'
|
218
|
+
require 'rdf/vocab'
|
219
|
+
|
213
220
|
class Album < Spira::Base
|
214
221
|
type RDF::URI.new('http://example.org/types/album')
|
215
|
-
property :name, :
|
222
|
+
property :name, predicate: RDF::Vocab::DC.title
|
216
223
|
end
|
217
224
|
|
218
225
|
Spira.repository = RDF::Repository.new
|
@@ -263,10 +270,10 @@ A class with a `default_vocabulary` set will transparently create predicates for
|
|
263
270
|
|
264
271
|
```ruby
|
265
272
|
class Song < Spira::Base
|
266
|
-
configure :
|
267
|
-
:
|
273
|
+
configure default_vocabulary: RDF::URI.new('http://example.org/vocab'),
|
274
|
+
base_uri: 'http://example.org/songs'
|
268
275
|
property :title
|
269
|
-
property :author, :
|
276
|
+
property :author, type: :artist
|
270
277
|
end
|
271
278
|
|
272
279
|
Spira.repository = RDF::Repository.new
|
@@ -288,8 +295,8 @@ will always return a list, including an empty list for no value. All options
|
|
288
295
|
for `property` work for `has_many`.
|
289
296
|
|
290
297
|
```ruby
|
291
|
-
property :artist, :
|
292
|
-
has_many :cds, :
|
298
|
+
property :artist, type: :artist #=> cd.artist returns a single value
|
299
|
+
has_many :cds, type: :cd #=> artist.cds returns an array
|
293
300
|
```
|
294
301
|
|
295
302
|
Property always takes a symbol name as a name, and a variable list of options. The supported options are:
|
@@ -308,7 +315,7 @@ properties having a single item, ie defined with `property`.
|
|
308
315
|
|
309
316
|
```ruby
|
310
317
|
class Article < Spira::Base
|
311
|
-
property :label, :
|
318
|
+
property :label, localized: true
|
312
319
|
end
|
313
320
|
|
314
321
|
Spira.repository = RDF::Repository.new
|
@@ -368,8 +375,8 @@ Classes can now use this particular type like so:
|
|
368
375
|
|
369
376
|
```ruby
|
370
377
|
class Test < Spira::Base
|
371
|
-
property :test1, :
|
372
|
-
property :test2, :
|
378
|
+
property :test1, type: Integer
|
379
|
+
property :test2, type: RDF::XSD.integer
|
373
380
|
end
|
374
381
|
```
|
375
382
|
|
@@ -404,7 +411,7 @@ module MyModule
|
|
404
411
|
end
|
405
412
|
|
406
413
|
class MyClass < Spira::Base
|
407
|
-
property :property1, :
|
414
|
+
property :property1, type: MyModule::MyType
|
408
415
|
end
|
409
416
|
```
|
410
417
|
|
@@ -467,6 +474,10 @@ All model objects are fully-functional as `RDF::Enumerable`, `RDF::Queryable`,
|
|
467
474
|
and `RDF::Mutable`. This lets you manipulate objects on the RDF statement
|
468
475
|
level. You can also access attributes that are not defined as properties.
|
469
476
|
|
477
|
+
## Documentation
|
478
|
+
|
479
|
+
<https://www.rubydoc.info/github/ruby-rdf/spira>
|
480
|
+
|
470
481
|
## Support
|
471
482
|
|
472
483
|
There are a number of ways to ask for help. In declining order of preference:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.1.
|
1
|
+
3.1.1
|
data/lib/spira.rb
CHANGED
data/lib/spira/base.rb
CHANGED
@@ -93,7 +93,7 @@ module Spira
|
|
93
93
|
end
|
94
94
|
|
95
95
|
def instantiate_record(subj)
|
96
|
-
new(:
|
96
|
+
new(_subject: id_for(subj))
|
97
97
|
end
|
98
98
|
|
99
99
|
end # class methods
|
@@ -260,7 +260,7 @@ module Spira
|
|
260
260
|
# @param [RDF::Resource] new_subject
|
261
261
|
# @return [Spira::Base] copy
|
262
262
|
def copy(new_subject)
|
263
|
-
self.class.new(@attrs.merge(:
|
263
|
+
self.class.new(@attrs.merge(_subject: new_subject))
|
264
264
|
end
|
265
265
|
|
266
266
|
##
|
@@ -336,7 +336,7 @@ module Spira
|
|
336
336
|
end
|
337
337
|
|
338
338
|
def serialize_localized_property(value, locale)
|
339
|
-
RDF::Literal.new(value, :
|
339
|
+
RDF::Literal.new(value, language: locale)
|
340
340
|
end
|
341
341
|
|
342
342
|
def unserialize_localized_properties(values, locale)
|
@@ -352,7 +352,7 @@ module Spira
|
|
352
352
|
end
|
353
353
|
|
354
354
|
def serialize_hash_localized_properties(values)
|
355
|
-
values.map { |lang, property| RDF::Literal.new(property, :
|
355
|
+
values.map { |lang, property| RDF::Literal.new(property, language: lang) }
|
356
356
|
end
|
357
357
|
|
358
358
|
# Build a Ruby value from an RDF value.
|
data/lib/spira/persistence.rb
CHANGED
@@ -20,7 +20,7 @@ module Spira
|
|
20
20
|
# @param [Hash] args
|
21
21
|
# args can contain:
|
22
22
|
# :conditions - Hash of properties and values
|
23
|
-
# :limit -
|
23
|
+
# :limit - Integer, limiting the amount of returned records
|
24
24
|
# @return [Spira::Base, Array]
|
25
25
|
def find(scope, *args)
|
26
26
|
case scope
|
@@ -73,7 +73,7 @@ module Spira
|
|
73
73
|
# cannot handle such patterns, we iterate across types "manually"
|
74
74
|
types.each do |tp|
|
75
75
|
break if limit.zero?
|
76
|
-
q = conditions_to_query(conditions.merge(:
|
76
|
+
q = conditions_to_query(conditions.merge(type: tp))
|
77
77
|
repository.query(q) do |solution|
|
78
78
|
break if limit.zero?
|
79
79
|
if offset.zero?
|
@@ -112,24 +112,24 @@ module Spira
|
|
112
112
|
#
|
113
113
|
# ==== Examples
|
114
114
|
# # Create a single new object
|
115
|
-
# User.create(:
|
115
|
+
# User.create(first_name: 'Jamie')
|
116
116
|
#
|
117
117
|
# # Create a single new object using the :admin mass-assignment security role
|
118
|
-
# User.create({ :
|
118
|
+
# User.create({ first_name: 'Jamie', is_admin: true }, as: :admin)
|
119
119
|
#
|
120
120
|
# # Create a single new object bypassing mass-assignment security
|
121
|
-
# User.create({ :
|
121
|
+
# User.create({ first_name: 'Jamie', is_admin: true }, without_protection: true)
|
122
122
|
#
|
123
123
|
# # Create an Array of new objects
|
124
|
-
# User.create([{ :
|
124
|
+
# User.create([{ first_name: 'Jamie' }, { first_name: 'Jeremy' }])
|
125
125
|
#
|
126
126
|
# # Create a single object and pass it into a block to set other attributes.
|
127
|
-
# User.create(:
|
127
|
+
# User.create(first_name: 'Jamie') do |u|
|
128
128
|
# u.is_admin = false
|
129
129
|
# end
|
130
130
|
#
|
131
131
|
# # Creating an Array of new objects using a block, where the block is executed for each object:
|
132
|
-
# User.create([{ :
|
132
|
+
# User.create([{ first_name: 'Jamie' }, { first_name: 'Jeremy' }]) do |u|
|
133
133
|
# u.is_admin = false
|
134
134
|
# end
|
135
135
|
def create(attributes = nil, options = {}, &block)
|
@@ -192,7 +192,7 @@ module Spira
|
|
192
192
|
# @param [Hash{Symbol => Any}] attributes Initial attributes
|
193
193
|
# @return [Spira::Base] the newly created instance
|
194
194
|
def project(subject, attributes = {}, &block)
|
195
|
-
new(attributes.merge(:
|
195
|
+
new(attributes.merge(_subject: subject), &block)
|
196
196
|
end
|
197
197
|
|
198
198
|
##
|
@@ -342,7 +342,7 @@ module Spira
|
|
342
342
|
# Update multiple attributes of this repository.
|
343
343
|
#
|
344
344
|
# @example Update multiple attributes
|
345
|
-
# person.update_attributes(:
|
345
|
+
# person.update_attributes(name: 'test', age: 10)
|
346
346
|
# #=> person
|
347
347
|
# person.name
|
348
348
|
# #=> 'test'
|
@@ -366,7 +366,7 @@ module Spira
|
|
366
366
|
# NB: "props" argument is ignored, it is handled in Base
|
367
367
|
#
|
368
368
|
def reload(props = {})
|
369
|
-
sts = self.class.repository.query(:
|
369
|
+
sts = self.class.repository.query({subject: subject})
|
370
370
|
self.class.properties.each do |name, options|
|
371
371
|
name = name.to_s
|
372
372
|
if sts
|
data/lib/spira/resource.rb
CHANGED
@@ -15,8 +15,8 @@ module Spira
|
|
15
15
|
#
|
16
16
|
def configure(options = {})
|
17
17
|
singleton_class.class_eval do
|
18
|
-
{ :
|
19
|
-
:
|
18
|
+
{ base_uri: options[:base_uri],
|
19
|
+
default_vocabulary: options[:default_vocabulary]
|
20
20
|
}.each do |name, value|
|
21
21
|
# redefine reader methods only when required,
|
22
22
|
# otherwise, use the ancestor methods
|
@@ -61,11 +61,11 @@ module Spira
|
|
61
61
|
# represents an RDF predicate.
|
62
62
|
#
|
63
63
|
# @example A simple string property
|
64
|
-
# property :name, :
|
64
|
+
# property :name, predicate: RDF::Vocab::FOAF.name, type: String
|
65
65
|
# @example A property which defaults to {Spira::Types::Any}
|
66
|
-
# property :name, :
|
66
|
+
# property :name, predicate: RDF::Vocab::FOAF.name
|
67
67
|
# @example An integer property
|
68
|
-
# property :age, :
|
68
|
+
# property :age, predicate: RDF::Vocab::FOAF.age, type: Integer
|
69
69
|
# @param [Symbol] name The name of this property
|
70
70
|
# @param [Hash{Symbol => Any}] opts property options
|
71
71
|
# @option opts [RDF::URI] :predicate The RDF predicate which will refer to this property
|
@@ -81,12 +81,12 @@ module Spira
|
|
81
81
|
if opts.delete(:localized)
|
82
82
|
raise 'Only Spira::Types::Any properties can accept the :localized option' unless type_for(opts[:type]) == Spira::Types::Any
|
83
83
|
define_localized_property_methods(name, opts)
|
84
|
-
has_many "#{name}_native", opts.merge(:
|
84
|
+
has_many "#{name}_native", opts.merge(type: Spira::Types::Native)
|
85
85
|
else
|
86
86
|
unset_has_many(name)
|
87
87
|
predicate = predicate_for(opts[:predicate], name)
|
88
88
|
type = type_for(opts[:type])
|
89
|
-
properties[name] = HashWithIndifferentAccess.new(:
|
89
|
+
properties[name] = HashWithIndifferentAccess.new(predicate: predicate, type: type)
|
90
90
|
|
91
91
|
define_attribute_method name
|
92
92
|
define_method "#{name}=" do |arg|
|
data/lib/spira/type.rb
CHANGED
@@ -26,8 +26,8 @@ module Spira
|
|
26
26
|
# Spira by default. It allows either of the following forms to declare an
|
27
27
|
# integer property on a Spira resource:
|
28
28
|
#
|
29
|
-
# property :age, :
|
30
|
-
# property :age, :
|
29
|
+
# property :age, predicate: RDF::Vocab::FOAF.age, type: Integer
|
30
|
+
# property :age, predicate: RDF::Vocab::FOAF.age, type: RDF::XSD.integer
|
31
31
|
#
|
32
32
|
# `Spira::Type`s include the RDF namespace and thus have all of the base RDF
|
33
33
|
# vocabularies available to them without the `RDF::` prefix.
|
data/lib/spira/types/anyURI.rb
CHANGED
data/lib/spira/types/boolean.rb
CHANGED
@@ -19,9 +19,9 @@ module Spira::Types
|
|
19
19
|
|
20
20
|
def self.serialize(value)
|
21
21
|
if value
|
22
|
-
RDF::Literal.new(true, :
|
22
|
+
RDF::Literal.new(true, datatype: RDF::XSD.boolean)
|
23
23
|
else
|
24
|
-
RDF::Literal.new(false, :
|
24
|
+
RDF::Literal.new(false, datatype: RDF::XSD.boolean)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
data/lib/spira/types/date.rb
CHANGED
data/lib/spira/types/dateTime.rb
CHANGED
@@ -17,10 +17,10 @@ module Spira::Types
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.serialize(value)
|
20
|
-
RDF::Literal.new(value, :
|
20
|
+
RDF::Literal.new(value, datatype: XSD.dateTime)
|
21
21
|
end
|
22
22
|
|
23
|
-
register_alias XSD.dateTime
|
23
|
+
register_alias RDF::XSD.dateTime
|
24
24
|
|
25
25
|
end
|
26
26
|
end
|
data/lib/spira/types/decimal.rb
CHANGED
@@ -20,7 +20,7 @@ module Spira::Types
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.serialize(value)
|
23
|
-
RDF::Literal.new(value.is_a?(BigDecimal) ? value.to_s('F') : value.to_s, :
|
23
|
+
RDF::Literal.new(value.is_a?(BigDecimal) ? value.to_s('F') : value.to_s, datatype: RDF::XSD.decimal)
|
24
24
|
end
|
25
25
|
|
26
26
|
register_alias RDF::XSD.decimal
|
data/lib/spira/types/double.rb
CHANGED
data/lib/spira/types/float.rb
CHANGED
data/lib/spira/types/gYear.rb
CHANGED
data/lib/spira/types/int.rb
CHANGED
data/lib/spira/types/integer.rb
CHANGED
data/lib/spira/types/long.rb
CHANGED
@@ -18,10 +18,10 @@ module Spira::Types
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.serialize(value)
|
21
|
-
RDF::Literal.new(value, :
|
21
|
+
RDF::Literal.new(value, datatype: XSD.negativeInteger)
|
22
22
|
end
|
23
23
|
|
24
|
-
register_alias XSD.negativeInteger
|
24
|
+
register_alias RDF::XSD.negativeInteger
|
25
25
|
|
26
26
|
end
|
27
27
|
end
|
@@ -18,10 +18,10 @@ module Spira::Types
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.serialize(value)
|
21
|
-
RDF::Literal.new(value, :
|
21
|
+
RDF::Literal.new(value, datatype: XSD.nonNegativeInteger)
|
22
22
|
end
|
23
23
|
|
24
|
-
register_alias XSD.nonNegativeInteger
|
24
|
+
register_alias RDF::XSD.nonNegativeInteger
|
25
25
|
|
26
26
|
end
|
27
27
|
end
|
@@ -18,10 +18,10 @@ module Spira::Types
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.serialize(value)
|
21
|
-
RDF::Literal.new(value, :
|
21
|
+
RDF::Literal.new(value, datatype: XSD.nonPositiveInteger)
|
22
22
|
end
|
23
23
|
|
24
|
-
register_alias XSD.nonPositiveInteger
|
24
|
+
register_alias RDF::XSD.nonPositiveInteger
|
25
25
|
|
26
26
|
end
|
27
27
|
end
|
@@ -18,10 +18,10 @@ module Spira::Types
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.serialize(value)
|
21
|
-
RDF::Literal.new(value, :
|
21
|
+
RDF::Literal.new(value, datatype: XSD.positiveInteger)
|
22
22
|
end
|
23
23
|
|
24
|
-
register_alias XSD.positiveInteger
|
24
|
+
register_alias RDF::XSD.positiveInteger
|
25
25
|
|
26
26
|
end
|
27
27
|
end
|
data/lib/spira/types/time.rb
CHANGED
data/lib/spira/utils.rb
CHANGED
@@ -23,11 +23,11 @@ module RDF
|
|
23
23
|
# @return [self]
|
24
24
|
def rename!(old_subject, new_subject)
|
25
25
|
transaction(mutable: true) do |tx|
|
26
|
-
query(subject: old_subject) do |statement|
|
26
|
+
query({subject: old_subject}) do |statement|
|
27
27
|
tx.insert RDF::Statement.new(new_subject, statement.predicate, statement.object)
|
28
28
|
tx.delete(statement)
|
29
29
|
end
|
30
|
-
query(object: old_subject) do |statement|
|
30
|
+
query({object: old_subject}) do |statement|
|
31
31
|
tx.insert RDF::Statement.new(statement.subject, statement.predicate, new_subject)
|
32
32
|
tx.delete(statement)
|
33
33
|
end
|
data/lib/spira/validations.rb
CHANGED
@@ -6,7 +6,7 @@ module Spira
|
|
6
6
|
#
|
7
7
|
# begin
|
8
8
|
# complex_operation_that_calls_save!_internally
|
9
|
-
# rescue Spira
|
9
|
+
# rescue Spira:RecordInvalid: invalid
|
10
10
|
# puts invalid.record.errors
|
11
11
|
# end
|
12
12
|
class RecordInvalid < SpiraError
|
@@ -15,7 +15,7 @@ module Spira
|
|
15
15
|
@record = record
|
16
16
|
errors = @record.errors.full_messages.join(", ")
|
17
17
|
# TODO: use I18n later
|
18
|
-
# super(I18n.t("activerecord.errors.messages.record_invalid", :
|
18
|
+
# super(I18n.t("activerecord.errors.messages.record_invalid", errors: errors))
|
19
19
|
super "invalid record"
|
20
20
|
end
|
21
21
|
end
|
@@ -39,7 +39,7 @@ module Spira
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
# The validation process on save can be skipped by passing <tt
|
42
|
+
# The validation process on save can be skipped by passing <tt>validate: false</tt>. The regular Base#save method is
|
43
43
|
# replaced with this when the validations module is mixed in, which it is by default.
|
44
44
|
def save(options={})
|
45
45
|
perform_validations(options) ? super : false
|
@@ -17,7 +17,7 @@ module Spira
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def validate_each(record, attribute, value)
|
20
|
-
@klass.find_each(:
|
20
|
+
@klass.find_each(conditions: {attribute => value}) do |other_record|
|
21
21
|
if other_record.subject != record.subject
|
22
22
|
record.errors.add(attribute, "is already taken")
|
23
23
|
break
|
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spira
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Lavender
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
10
|
-
- bin
|
9
|
+
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2019-12-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rdf
|
@@ -17,28 +16,28 @@ dependencies:
|
|
17
16
|
requirements:
|
18
17
|
- - "~>"
|
19
18
|
- !ruby/object:Gem::Version
|
20
|
-
version: '3.
|
19
|
+
version: '3.1'
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
24
|
- - "~>"
|
26
25
|
- !ruby/object:Gem::Version
|
27
|
-
version: '3.
|
26
|
+
version: '3.1'
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
28
|
name: rdf-isomorphic
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
31
|
- - "~>"
|
33
32
|
- !ruby/object:Gem::Version
|
34
|
-
version: '3.
|
33
|
+
version: '3.1'
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
38
|
- - "~>"
|
40
39
|
- !ruby/object:Gem::Version
|
41
|
-
version: '3.
|
40
|
+
version: '3.1'
|
42
41
|
- !ruby/object:Gem::Dependency
|
43
42
|
name: promise
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,112 +58,112 @@ dependencies:
|
|
59
58
|
requirements:
|
60
59
|
- - "~>"
|
61
60
|
- !ruby/object:Gem::Version
|
62
|
-
version: '5.
|
61
|
+
version: '5.0'
|
63
62
|
type: :runtime
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
66
|
- - "~>"
|
68
67
|
- !ruby/object:Gem::Version
|
69
|
-
version: '5.
|
68
|
+
version: '5.0'
|
70
69
|
- !ruby/object:Gem::Dependency
|
71
70
|
name: activesupport
|
72
71
|
requirement: !ruby/object:Gem::Requirement
|
73
72
|
requirements:
|
74
73
|
- - "~>"
|
75
74
|
- !ruby/object:Gem::Version
|
76
|
-
version: '5.
|
75
|
+
version: '5.0'
|
77
76
|
type: :runtime
|
78
77
|
prerelease: false
|
79
78
|
version_requirements: !ruby/object:Gem::Requirement
|
80
79
|
requirements:
|
81
80
|
- - "~>"
|
82
81
|
- !ruby/object:Gem::Version
|
83
|
-
version: '5.
|
82
|
+
version: '5.0'
|
84
83
|
- !ruby/object:Gem::Dependency
|
85
84
|
name: rdf-spec
|
86
85
|
requirement: !ruby/object:Gem::Requirement
|
87
86
|
requirements:
|
88
87
|
- - "~>"
|
89
88
|
- !ruby/object:Gem::Version
|
90
|
-
version: '3.
|
89
|
+
version: '3.1'
|
91
90
|
type: :development
|
92
91
|
prerelease: false
|
93
92
|
version_requirements: !ruby/object:Gem::Requirement
|
94
93
|
requirements:
|
95
94
|
- - "~>"
|
96
95
|
- !ruby/object:Gem::Version
|
97
|
-
version: '3.
|
96
|
+
version: '3.1'
|
98
97
|
- !ruby/object:Gem::Dependency
|
99
98
|
name: rdf-turtle
|
100
99
|
requirement: !ruby/object:Gem::Requirement
|
101
100
|
requirements:
|
102
101
|
- - "~>"
|
103
102
|
- !ruby/object:Gem::Version
|
104
|
-
version: '3.
|
103
|
+
version: '3.1'
|
105
104
|
type: :development
|
106
105
|
prerelease: false
|
107
106
|
version_requirements: !ruby/object:Gem::Requirement
|
108
107
|
requirements:
|
109
108
|
- - "~>"
|
110
109
|
- !ruby/object:Gem::Version
|
111
|
-
version: '3.
|
110
|
+
version: '3.1'
|
112
111
|
- !ruby/object:Gem::Dependency
|
113
112
|
name: rdf-vocab
|
114
113
|
requirement: !ruby/object:Gem::Requirement
|
115
114
|
requirements:
|
116
115
|
- - "~>"
|
117
116
|
- !ruby/object:Gem::Version
|
118
|
-
version: '3.
|
117
|
+
version: '3.1'
|
119
118
|
type: :development
|
120
119
|
prerelease: false
|
121
120
|
version_requirements: !ruby/object:Gem::Requirement
|
122
121
|
requirements:
|
123
122
|
- - "~>"
|
124
123
|
- !ruby/object:Gem::Version
|
125
|
-
version: '3.
|
124
|
+
version: '3.1'
|
126
125
|
- !ruby/object:Gem::Dependency
|
127
126
|
name: rspec
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
129
128
|
requirements:
|
130
129
|
- - "~>"
|
131
130
|
- !ruby/object:Gem::Version
|
132
|
-
version: '3.
|
131
|
+
version: '3.9'
|
133
132
|
type: :development
|
134
133
|
prerelease: false
|
135
134
|
version_requirements: !ruby/object:Gem::Requirement
|
136
135
|
requirements:
|
137
136
|
- - "~>"
|
138
137
|
- !ruby/object:Gem::Version
|
139
|
-
version: '3.
|
138
|
+
version: '3.9'
|
140
139
|
- !ruby/object:Gem::Dependency
|
141
140
|
name: rspec-its
|
142
141
|
requirement: !ruby/object:Gem::Requirement
|
143
142
|
requirements:
|
144
143
|
- - "~>"
|
145
144
|
- !ruby/object:Gem::Version
|
146
|
-
version: '1.
|
145
|
+
version: '1.3'
|
147
146
|
type: :development
|
148
147
|
prerelease: false
|
149
148
|
version_requirements: !ruby/object:Gem::Requirement
|
150
149
|
requirements:
|
151
150
|
- - "~>"
|
152
151
|
- !ruby/object:Gem::Version
|
153
|
-
version: '1.
|
152
|
+
version: '1.3'
|
154
153
|
- !ruby/object:Gem::Dependency
|
155
154
|
name: yard
|
156
155
|
requirement: !ruby/object:Gem::Requirement
|
157
156
|
requirements:
|
158
157
|
- - "~>"
|
159
158
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.9.
|
159
|
+
version: 0.9.20
|
161
160
|
type: :development
|
162
161
|
prerelease: false
|
163
162
|
version_requirements: !ruby/object:Gem::Requirement
|
164
163
|
requirements:
|
165
164
|
- - "~>"
|
166
165
|
- !ruby/object:Gem::Version
|
167
|
-
version: 0.9.
|
166
|
+
version: 0.9.20
|
168
167
|
description: Spira is a framework for using the information in RDF.rb repositories
|
169
168
|
as model objects.
|
170
169
|
email: blavender@gmail.com
|
@@ -214,7 +213,7 @@ files:
|
|
214
213
|
- lib/spira/version.rb
|
215
214
|
homepage: http://ruby-rdf.github.io/spira/
|
216
215
|
licenses:
|
217
|
-
-
|
216
|
+
- Unlicense
|
218
217
|
metadata: {}
|
219
218
|
post_install_message:
|
220
219
|
rdoc_options: []
|
@@ -224,15 +223,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
224
223
|
requirements:
|
225
224
|
- - ">="
|
226
225
|
- !ruby/object:Gem::Version
|
227
|
-
version: 2.
|
226
|
+
version: '2.4'
|
228
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
228
|
requirements:
|
230
229
|
- - ">="
|
231
230
|
- !ruby/object:Gem::Version
|
232
231
|
version: '0'
|
233
232
|
requirements: []
|
234
|
-
|
235
|
-
rubygems_version: 2.6.14.1
|
233
|
+
rubygems_version: 3.0.6
|
236
234
|
signing_key:
|
237
235
|
specification_version: 4
|
238
236
|
summary: A framework for using the information in RDF.rb repositories as model objects.
|