rdf-mongo 2.0.0 → 2.0.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 +4 -4
- data/VERSION +1 -1
- data/lib/rdf/mongo.rb +41 -19
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a91d8405fa246651fce9d3c97b3da32b26c1380
|
4
|
+
data.tar.gz: 93c268a404411577b276771ddb8f7c8b82cc91ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28afd467cc19bccfc1bbe4e4cdb830ad0e764f57f7742047be32f4b8f3b83d3030f42a1bbdcbb88f8db68861a10f50b0cb8d78ddcb49c11d3f212fd6402b2732
|
7
|
+
data.tar.gz: e903f0f0b89bde195e847643a84fcc0f64d44519510d7de49d46545271ef65fbb5a5b6cd203eea36f081d07b019fa9e5faa853f529247f349b157bdcf88ea942
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.1
|
data/lib/rdf/mongo.rb
CHANGED
@@ -8,11 +8,11 @@ module RDF
|
|
8
8
|
# Creates a BSON representation of the statement.
|
9
9
|
# @return [Hash]
|
10
10
|
def to_mongo
|
11
|
-
self.to_hash.inject({}) do |hash, (place_in_statement, entity)|
|
12
|
-
hash.merge(RDF::Mongo::Conversion.to_mongo(entity, place_in_statement))
|
11
|
+
self.to_hash.inject({}) do |hash, (place_in_statement, entity)|
|
12
|
+
hash.merge(RDF::Mongo::Conversion.to_mongo(entity, place_in_statement))
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
##
|
17
17
|
# Create BSON for a statement representation. Note that if the statement has no graph name,
|
18
18
|
# a value of `false` will be used to indicate the default context
|
@@ -27,7 +27,7 @@ module RDF
|
|
27
27
|
graph_name: RDF::Mongo::Conversion.from_mongo(statement['c'], statement['ct'], statement['cl']))
|
28
28
|
end
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
module Mongo
|
32
32
|
autoload :VERSION, "rdf/mongo/version"
|
33
33
|
|
@@ -68,7 +68,7 @@ module RDF
|
|
68
68
|
v, k = value.to_s, :u
|
69
69
|
end
|
70
70
|
v = nil if v == ''
|
71
|
-
|
71
|
+
|
72
72
|
case place_in_statement
|
73
73
|
when :subject
|
74
74
|
t, k1, lt = :st, :s, :sl
|
@@ -114,7 +114,7 @@ module RDF
|
|
114
114
|
# The collection used for storing quads
|
115
115
|
# @return [Mongo::Collection]
|
116
116
|
attr_reader :collection
|
117
|
-
|
117
|
+
|
118
118
|
##
|
119
119
|
# Initializes this repository instance.
|
120
120
|
#
|
@@ -171,28 +171,36 @@ module RDF
|
|
171
171
|
# @see RDF::Mutable#insert_statement
|
172
172
|
def supports?(feature)
|
173
173
|
case feature.to_sym
|
174
|
-
when :graph_name
|
174
|
+
when :graph_name then true
|
175
|
+
when :atomic_write then true
|
175
176
|
when :validity then @options.fetch(:with_validity, true)
|
176
177
|
else false
|
177
178
|
end
|
178
179
|
end
|
179
|
-
|
180
|
+
|
181
|
+
def apply_changeset(changeset)
|
182
|
+
ops = []
|
183
|
+
|
184
|
+
changeset.deletes.each do |d|
|
185
|
+
ops << { delete_one: { filter: statement_to_delete(d)} }
|
186
|
+
end
|
187
|
+
|
188
|
+
changeset.inserts.each do |i|
|
189
|
+
ops << { update_one: { filter: statement_to_insert(i), update: statement_to_insert(i), upsert: true} }
|
190
|
+
end
|
191
|
+
|
192
|
+
@collection.bulk_write(ops, ordered: true)
|
193
|
+
end
|
194
|
+
|
180
195
|
def insert_statement(statement)
|
181
|
-
|
182
|
-
st_mongo = statement.to_mongo
|
183
|
-
st_mongo[:ct] ||= :default # Indicate statement is in the default graph
|
184
|
-
#puts "insert statement: #{st_mongo.inspect}"
|
196
|
+
st_mongo = statement_to_insert(statement)
|
185
197
|
@collection.update_one(st_mongo, st_mongo, upsert: true)
|
186
198
|
end
|
187
199
|
|
188
200
|
# @see RDF::Mutable#delete_statement
|
189
201
|
def delete_statement(statement)
|
190
|
-
|
191
|
-
|
192
|
-
@collection.delete_one(statement.to_mongo.merge('ct'=>:default))
|
193
|
-
else
|
194
|
-
@collection.delete_one(statement.to_mongo)
|
195
|
-
end
|
202
|
+
st_mongo = statement_to_delete(statement)
|
203
|
+
@collection.delete_one(st_mongo)
|
196
204
|
end
|
197
205
|
|
198
206
|
##
|
@@ -261,13 +269,27 @@ module RDF
|
|
261
269
|
block.call(RDF::Statement.from_mongo(document))
|
262
270
|
end
|
263
271
|
end
|
264
|
-
|
272
|
+
|
265
273
|
private
|
266
274
|
|
267
275
|
def enumerator! # @private
|
268
276
|
require 'enumerator' unless defined?(::Enumerable)
|
269
277
|
@@enumerator_klass = defined?(::Enumerable::Enumerator) ? ::Enumerable::Enumerator : ::Enumerator
|
270
278
|
end
|
279
|
+
|
280
|
+
def statement_to_insert(statement)
|
281
|
+
raise ArgumentError, "Statement #{statement.inspect} is incomplete" if statement.incomplete?
|
282
|
+
st_mongo = statement.to_mongo
|
283
|
+
st_mongo[:ct] ||= :default # Indicate statement is in the default graph
|
284
|
+
#puts "insert statement: #{st_mongo.inspect}"
|
285
|
+
st_mongo
|
286
|
+
end
|
287
|
+
|
288
|
+
def statement_to_delete(statement)
|
289
|
+
st_mongo = statement.to_mongo
|
290
|
+
st_mongo[:ct] = :default if statement.graph_name.nil?
|
291
|
+
st_mongo
|
292
|
+
end
|
271
293
|
end
|
272
294
|
end
|
273
295
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-mongo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pius Uzamere
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-06-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
129
|
version: '0'
|
130
130
|
requirements: []
|
131
131
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.
|
132
|
+
rubygems_version: 2.5.1
|
133
133
|
signing_key:
|
134
134
|
specification_version: 4
|
135
135
|
summary: A storage adapter for integrating MongoDB and rdf.rb, a Ruby library for
|