solis 0.67.0 → 0.68.0
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/lib/solis/graph.rb +4 -4
- data/lib/solis/model.rb +10 -7
- data/lib/solis/query.rb +5 -1
- data/lib/solis/version.rb +1 -1
- data/solis.gemspec +1 -1
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a93afb01da132bf005f3e682986c2e15876db706550f579aa5505854c23aabb0
|
4
|
+
data.tar.gz: 6ab988794791e1e14abeb58c8ed610270685cef642135d49fe679248396186fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fd19bea2aa49407929aecb36760e7cf1ae31896e57c6075f43dd09ef8abd56e4f4cf15643f031ed9e5537f9249d7e3d50c10a7f8aff8d1b08138623ca729a42
|
7
|
+
data.tar.gz: 3bad39506d27b3cf9437c27e1a9c99a9fcd7cdcc78a50cdd1c951ef80741926e5db1ab189835a68c3a80ec2323f69500b39156c1ea99a792143583fe95b43dd1
|
data/lib/solis/graph.rb
CHANGED
@@ -277,14 +277,14 @@ module Solis
|
|
277
277
|
remote_resources = [remote_resources] unless remote_resources.is_a?(Array)
|
278
278
|
remote_resources = remote_resources.map do |remote_resource|
|
279
279
|
resource_id = remote_resource.id =~ /^http/ ? remote_resource.id.split('/').last : remote_resource.id
|
280
|
-
|
280
|
+
|
281
281
|
"#{resource.class.graph_name.gsub(/\/$/,'')}/#{belongs_to_resource_name.tableize}/#{resource_id}"
|
282
282
|
end
|
283
283
|
|
284
|
-
# return remote_resources.length == 1 ? remote_resources.first : remote_resources
|
285
284
|
end
|
286
285
|
|
287
|
-
|
286
|
+
|
287
|
+
remote_resources.join(',') if remote_resources #belongs_to
|
288
288
|
end
|
289
289
|
end
|
290
290
|
else
|
@@ -323,7 +323,7 @@ module Solis
|
|
323
323
|
|
324
324
|
#return remote_resources.length == 1 ? remote_resources.first : remote_resources
|
325
325
|
end
|
326
|
-
remote_resources.
|
326
|
+
remote_resources.join(',') if remote_resources
|
327
327
|
end
|
328
328
|
end
|
329
329
|
end
|
data/lib/solis/model.rb
CHANGED
@@ -26,9 +26,12 @@ module Solis
|
|
26
26
|
elsif self.class.metadata[:attributes][attribute.to_s][:node_kind].is_a?(RDF::URI) && value.is_a?(Array)
|
27
27
|
new_value = []
|
28
28
|
value.each do |v|
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
if v.is_a?(Hash)
|
30
|
+
inner_model = self.class.graph.shape_as_model(self.class.metadata[:attributes][attribute.to_s][:datatype].to_s)
|
31
|
+
new_value << inner_model.new(v)
|
32
|
+
else
|
33
|
+
new_value << v
|
34
|
+
end
|
32
35
|
end
|
33
36
|
value = new_value
|
34
37
|
end
|
@@ -147,7 +150,7 @@ module Solis
|
|
147
150
|
|
148
151
|
sparql = SPARQL::Client.new(self.class.sparql_endpoint)
|
149
152
|
|
150
|
-
original_klass = self.query.filter({language: nil, filters: { id: [id] } }).find_all.map { |m| m }&.first
|
153
|
+
original_klass = self.query.filter({ language: nil, filters: { id: [id] } }).find_all.map { |m| m }&.first
|
151
154
|
raise Solis::Error::NotFoundError if original_klass.nil?
|
152
155
|
updated_klass = original_klass.deep_dup
|
153
156
|
|
@@ -408,11 +411,11 @@ module Solis
|
|
408
411
|
|
409
412
|
data.each do |d|
|
410
413
|
if defined?(d.name) && self.class.graph.shape?(d.name)
|
411
|
-
if self.class.graph.shape_as_model(d.name.to_s).metadata[:attributes].select{|_,v| v[:node_kind].is_a?(RDF::URI)}.size > 0 &&
|
412
|
-
hierarchy.select{|s| s =~ /^#{d.name.to_s}/}.size == 0
|
414
|
+
if self.class.graph.shape_as_model(d.name.to_s).metadata[:attributes].select { |_, v| v[:node_kind].is_a?(RDF::URI) }.size > 0 &&
|
415
|
+
hierarchy.select { |s| s =~ /^#{d.name.to_s}/ }.size == 0
|
413
416
|
internal_resolve = false
|
414
417
|
d = build_ttl_objekt2(graph, d, hierarchy, internal_resolve)
|
415
|
-
elsif self.class.graph.shape_as_model(d.name.to_s) && hierarchy.select{|s| s =~ /^#{d.name.to_s}/}.size == 0
|
418
|
+
elsif self.class.graph.shape_as_model(d.name.to_s) && hierarchy.select { |s| s =~ /^#{d.name.to_s}/ }.size == 0
|
416
419
|
internal_resolve = false
|
417
420
|
d = build_ttl_objekt2(graph, d, hierarchy, internal_resolve)
|
418
421
|
else
|
data/lib/solis/query.rb
CHANGED
@@ -321,7 +321,11 @@ PREFIX #{@model.class.graph_prefix}: <#{@model.class.graph_name}>"
|
|
321
321
|
end
|
322
322
|
else
|
323
323
|
if solution_model.metadata[:attributes][attribute][:maxcount].nil? || solution_model.metadata[:attributes][attribute][:maxcount] > 1
|
324
|
-
data
|
324
|
+
if data.include?(attribute)
|
325
|
+
data[attribute] << object
|
326
|
+
else
|
327
|
+
data[attribute] = [object]
|
328
|
+
end
|
325
329
|
else
|
326
330
|
data[attribute] = object
|
327
331
|
end
|
data/lib/solis/version.rb
CHANGED
data/solis.gemspec
CHANGED
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
|
|
6
6
|
spec.authors = ['Mehmet Celik']
|
7
7
|
spec.email = ['mehmet@celik.be']
|
8
8
|
|
9
|
-
spec.summary = '
|
9
|
+
spec.summary = 'Turn any SHACL file into an API, ORM, documentation, ...'
|
10
10
|
spec.description = 'The SUN in latin or is it SILOS spelled backwards. Creates a SHACL, RDF, PlantUML file from a Google sheet and a layer ontop of a data store(RDBMS, Triple store)'
|
11
11
|
spec.homepage = 'https://github.com/mehmetc/solis'
|
12
12
|
spec.license = 'MIT'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.68.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mehmet Celik
|
@@ -299,6 +299,5 @@ requirements: []
|
|
299
299
|
rubygems_version: 3.1.6
|
300
300
|
signing_key:
|
301
301
|
specification_version: 4
|
302
|
-
summary:
|
303
|
-
of a data store(RDBMS, Triple store)
|
302
|
+
summary: Turn any SHACL file into an API, ORM, documentation, ...
|
304
303
|
test_files: []
|