solis 0.80.0 → 0.82.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 156f64ccc4d0ce04ac67bbb450634697eab5f9c35079fafbc2024afc921aae79
4
- data.tar.gz: 9ef551b57b0322740837b2ee4feaffe80b5447e6f0d119fdf865dfda43bea24b
3
+ metadata.gz: 148a2ed5b726f859738b0a345a66df17f252409f6ef13b093292cdae06ba752e
4
+ data.tar.gz: d5079802a5d56d7076d02eadd47e50d55a6adc1f00ff8cfc776eb0ab88ed4dfb
5
5
  SHA512:
6
- metadata.gz: bf8c5a1e3ed1a80ba916aaa9868cc5965cc9cf962ecd3913e9a4a2d41417db8c5e618eb1866e1085dea71573257934a42ed8f29b9a42e3dcf6134f6b3a2d99c2
7
- data.tar.gz: ac4c0296ffa93d3b10ed183e5fef30a2a75a712e81e07898bb71cb927a0296f6ff5043c2b33d9964a5eac2542031f2d3f5802dad4b4e0ffecdbe9b817693191f
6
+ metadata.gz: 7a5b1d02a96dfe0c6469624487ab61db13c5ba88862a39bfd575bd92df5b0e26b7abde650101007b9426d7dde49e2dd1d791c217c0eb736a1050edd56d49cc75
7
+ data.tar.gz: '0815bbee7954c53515a6c7d3c49000d6d002a2d23bc5c577c93ab02b6f2ba3fa9b1cb6fd9e34e3b61d991a143e6556df97041873abb08233281dd5f0c625d127'
@@ -2,7 +2,7 @@ require 'solis/store/sparql/client'
2
2
  require 'solis/config_file'
3
3
 
4
4
  class Solis::Query::Runner
5
- def self.run(entity, query)
5
+ def self.run(entity, query, options = {})
6
6
  result = {}
7
7
  context = JSON.parse %(
8
8
  {
@@ -16,7 +16,7 @@ class Solis::Query::Runner
16
16
  )
17
17
 
18
18
  c = Solis::Store::Sparql::Client.new(Solis::Options.instance.get[:sparql_endpoint], Solis::Options.instance.get[:graph_name])
19
- r = c.query(query)
19
+ r = c.query(query, options)
20
20
  if r.is_a?(SPARQL::Client)
21
21
  g = RDF::Graph.new
22
22
  t = r.query('select * where{?s ?p ?o}')
@@ -47,11 +47,15 @@ class Solis::Query::Runner
47
47
  def self.sanitize_result(framed)
48
48
  data = framed&.key?('@graph') ? framed['@graph'] : [framed]
49
49
 
50
+ sanitatize_data_in_result(data)
51
+ end
52
+
53
+ def self.sanitatize_data_in_result(data)
50
54
  data.map do |d|
51
55
  d.delete_if { |e| e =~ /^@/ }
52
56
  if d.is_a?(Hash)
53
57
  new_d = {}
54
- d.each do |k,v|
58
+ d.each do |k, v|
55
59
  if v.is_a?(Hash)
56
60
  if v.key?('@type')
57
61
  type = v['@type']
@@ -71,7 +75,11 @@ class Solis::Query::Runner
71
75
  end
72
76
  v = sanitize_result(v) if v.is_a?(Hash)
73
77
  end
74
- new_d[k] = v.class.method_defined?(:value) ? v.value : v
78
+ if v.is_a?(Hash)
79
+ new_d[k] = v.class.method_defined?(:value) ? v.value : sanitize_result(v)
80
+ else
81
+ new_d[k] = v.class.method_defined?(:value) ? v.value : v
82
+ end
75
83
  elsif v.is_a?(Array) #todo: make recursive
76
84
  new_d[k] = []
77
85
  v.each do |vt|
@@ -95,5 +103,8 @@ class Solis::Query::Runner
95
103
 
96
104
  d
97
105
  end
106
+ rescue StandardError => e
107
+ Solis::LOGGER.error(e.message)
108
+ data
98
109
  end
99
110
  end
@@ -43,6 +43,12 @@ module Solis
43
43
  raise "_REFERENCES tab must have ['sheeturl', 'description', 'entityrange'] as a header at row 1" unless (%w[sheeturl description entityrange] - references.header).length == 0
44
44
  end
45
45
 
46
+ sheets.each do |sheet_name, sheet|
47
+ if sheet_name !~ /^_/
48
+ entities = sheets[sheet_name]
49
+ raise "#{sheet_name} tab must have ['Name', 'Description', 'MIN', 'MAX', 'sameAs', 'datatype'] as a header at row 1" unless (%w[name description min max sameas datatype] - entities.header).length == 0
50
+ end
51
+ end
46
52
  end
47
53
 
48
54
  def read_sheets(key, spreadsheet_id, options)
@@ -7,7 +7,7 @@ module Solis
7
7
  @client = client
8
8
  end
9
9
 
10
- def run(query)
10
+ def run(query, options = {})
11
11
  result = @client.query(query)
12
12
 
13
13
  if is_construct?(query)
@@ -27,11 +27,11 @@ module Solis
27
27
  return false
28
28
  end
29
29
 
30
- def query(query)
30
+ def query(query, options = {})
31
31
  raise Solis::Error::NotFoundError, "Server or graph(#{@graph_name} not found" unless up?
32
32
  result = nil
33
33
  @pool.with do |c|
34
- result = Query.new(c).run(query)
34
+ result = Query.new(c).run(query, options)
35
35
  end
36
36
  result
37
37
  end
data/lib/solis/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Solis
2
- VERSION = "0.80.0"
2
+ VERSION = "0.82.0"
3
3
  end
data/solis.gemspec CHANGED
@@ -40,6 +40,8 @@ Gem::Specification.new do |spec|
40
40
  spec.add_runtime_dependency 'uuidtools', '~> 2.2.0'
41
41
  spec.add_runtime_dependency 'dry-struct', '~> 1.6'
42
42
  spec.add_runtime_dependency 'psych', '~> 5.1'
43
+ spec.add_runtime_dependency 'csv'
44
+ spec.add_runtime_dependency 'mutex_m'
43
45
  # spec.add_runtime_dependency 'rdf-edtf', '~> 1.1.2'
44
46
 
45
47
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.80.0
4
+ version: 0.82.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mehmet Celik
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-02-10 00:00:00.000000000 Z
11
+ date: 2025-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -192,6 +192,34 @@ dependencies:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: '5.1'
195
+ - !ruby/object:Gem::Dependency
196
+ name: csv
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: mutex_m
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
195
223
  - !ruby/object:Gem::Dependency
196
224
  name: rake
197
225
  requirement: !ruby/object:Gem::Requirement