isomorfeus-data 2.0.8 → 2.0.9

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: a09020f3b3236877f85125081f8764b2d1dbf1dc3c89fbd8d46330c4b1dca170
4
- data.tar.gz: 7ed66920cca65525177f290fdbf087f613cd86eeda4f6e11f71e10a4b11da663
3
+ metadata.gz: 03adcad549502d3b374fa200b4c1a90b4a1963288a40e619a170ffb5190ec870
4
+ data.tar.gz: 000c496d28015877c52c84934d100827dea59740cda0f78b1b6f8b6c9eea5979
5
5
  SHA512:
6
- metadata.gz: cdab55e27bf5bd67980e94f71d237bb61e057936bf157bc89a02542dc064990ec2749415941374a5fd39e9936bb2bcc02124e046b6c449f1ef4662c5e5aa854d
7
- data.tar.gz: 0c43b39b25ab371e5927e462c7e0d1c4c6dd1f151e2b2379dc94687fb970556b78d46b9e159fd699af1829a71669260f71b689562c54558ac9852c228393d03d
6
+ metadata.gz: bdd85f149ef46ba89524c23045fa68cc5662786dcb16f07c9a8405e567edac87e4c87f679d1286164f0e1fee62e5b76b6299506c26f9a0ad25620a43d8632c24
7
+ data.tar.gz: 5bcac6b623211981f5d4e5adc83ef63257d022301cad48582bd7cecd43ecbd46054622ed133c3f7f158868823a36b8e5bbfcf488a6eab7fbbf7bf1553225f268
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.0.8'
3
+ VERSION = '2.0.9'
4
4
  end
5
5
  end
@@ -5,20 +5,23 @@ module LucidQuery
5
5
 
6
6
  if RUBY_ENGINE == 'opal'
7
7
  base.instance_exec do
8
- def execute(**props)
9
- props[:query_result_instance] = LucidQueryResult.new
8
+ def execute(key: nil, **props)
9
+ props[:query_result_instance] = LucidQueryResult.new(key: key)
10
10
  promise_execute(props) unless props[:query_result_instance].loaded?
11
11
  props[:query_result_instance]
12
12
  end
13
13
 
14
- def promise_execute(**props)
14
+ def promise_execute(key: nil, **props)
15
15
  query_result_instance = props.delete(:query_result_instance)
16
- query_result_instance = LucidQueryResult.new unless query_result_instance
16
+ query_result_instance = LucidQueryResult.new(key: key) unless query_result_instance
17
+
18
+ return Promise.new.resolve(query_result_instance) if query_result_instance.loaded?
19
+
17
20
  props.each_key do |prop_name|
18
21
  Isomorfeus.raise_error(message: "#{self.to_s} No such query prop declared: '#{prop_name}'!") unless declared_props.key?(prop_name)
19
22
  end
20
23
  props = validated_props(props)
21
- props[:query_result_instance_key] = query_result_instance.key
24
+ props[:key] = query_result_instance.key
22
25
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', self.name, :query, props).then do |agent|
23
26
  if agent.processed
24
27
  agent.result
@@ -50,10 +53,9 @@ module LucidQuery
50
53
  end
51
54
 
52
55
  def execute(**props)
53
- query_result_instance_key = props.delete(:query_result_instance_key)
54
- query_result = LucidQueryResult.new(key: query_result_instance_key)
55
- query_result.result_set = self.new(**props).instance_exec(&@_query_block)
56
- query_result
56
+ key = props.delete(:key)
57
+ result_set = self.new(**props).instance_exec(&@_query_block)
58
+ LucidQueryResult.new(key: key, result_set: result_set)
57
59
  end
58
60
 
59
61
  def execute_query(&block)
@@ -14,7 +14,7 @@ class LucidQueryResult
14
14
  end
15
15
 
16
16
  if RUBY_ENGINE == 'opal'
17
- def initialize(key: nil, result_set: {})
17
+ def initialize(key: nil, result_set: nil)
18
18
  @class_name = 'LucidQueryResult'
19
19
  @key = key ? key.to_s : self.object_id.to_s
20
20
  @result_set = result_set
@@ -39,17 +39,13 @@ class LucidQueryResult
39
39
  end
40
40
  alias has_key? key?
41
41
 
42
- def result_set=(r)
43
- @result_set = r
44
- end
45
-
46
42
  def method_missing(accessor_name, *args, &block)
47
43
  sid_or_array = if @result_set
48
- @result_set[accessor_name]
49
- else
50
- stored_results = Redux.fetch_by_path(:data_state, @class_name, @key)
51
- stored_results.JS[accessor_name] if stored_results
52
- end
44
+ @result_set[accessor_name]
45
+ else
46
+ stored_results = Redux.fetch_by_path(:data_state, @class_name, @key)
47
+ stored_results.JS[accessor_name] if stored_results
48
+ end
53
49
  Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless sid_or_array
54
50
  if stored_results.JS['_is_array_']
55
51
  sid_or_array.map { |sid| Isomorfeus.instance_from_sid(sid) }
@@ -58,7 +54,7 @@ class LucidQueryResult
58
54
  end
59
55
  end
60
56
  else
61
- def initialize(key: nil, result_set: {})
57
+ def initialize(key: nil, result_set: nil)
62
58
  @class_name = 'LucidQueryResult'
63
59
  @key = key ? key.to_s : self.object_id.to_s
64
60
  @result_set = result_set.nil? ? {} : result_set
@@ -74,10 +70,6 @@ class LucidQueryResult
74
70
  end
75
71
  alias has_key? key?
76
72
 
77
- def result_set=(r)
78
- @result_set = r
79
- end
80
-
81
73
  def method_missing(accessor_name, *args, &block)
82
74
  Isomorfeus.raise_error(message: "#{@class_name}: no such thing '#{accessor_name}' in the results!") unless @result_set.key?(accessor_name)
83
75
  @result_set[accessor_name]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.8
4
+ version: 2.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-25 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 10.6.13
117
+ version: 10.6.14
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 10.6.13
124
+ version: 10.6.14
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: isomorfeus-redux
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,28 +142,28 @@ dependencies:
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.8
145
+ version: 2.0.9
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.0.8
152
+ version: 2.0.9
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: isomorfeus
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: 2.0.8
159
+ version: 2.0.9
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: 2.0.8
166
+ version: 2.0.9
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement