isomorfeus-data 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.
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