solis 0.80.0 → 0.81.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: 5bd00b98413e1643fab9d1d14be119aa13be1cc30c140bb5a303ba946ce77938
4
+ data.tar.gz: e8a6a3c31cdad735a5fe1fc74aae0e5bd0315298cbc109f4b49424fa9a48a311
5
5
  SHA512:
6
- metadata.gz: bf8c5a1e3ed1a80ba916aaa9868cc5965cc9cf962ecd3913e9a4a2d41417db8c5e618eb1866e1085dea71573257934a42ed8f29b9a42e3dcf6134f6b3a2d99c2
7
- data.tar.gz: ac4c0296ffa93d3b10ed183e5fef30a2a75a712e81e07898bb71cb927a0296f6ff5043c2b33d9964a5eac2542031f2d3f5802dad4b4e0ffecdbe9b817693191f
6
+ metadata.gz: b4dd50f0792125505fd1d29567315885fc625c8c042cfe6de2e9a54584851e3bf04aced1297018126faa9234e2e44cd4e016b61f8121d57d00f52e07d60baaca
7
+ data.tar.gz: 7b5eac096038ce5f7e384fcbc02523a6bdb3960031150746613117ece277d3de64784022353c96ec4b75494a8286a5cb475ef8aeb577c01d14073306ae7ac788
@@ -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,8 +7,8 @@ module Solis
7
7
  @client = client
8
8
  end
9
9
 
10
- def run(query)
11
- result = @client.query(query)
10
+ def run(query, options = {})
11
+ result = @client.query(query, options)
12
12
 
13
13
  if is_construct?(query)
14
14
  repository = RDF::Repository.new
@@ -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.81.0"
3
3
  end
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.81.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