isomorfeus-data 2.0.10 → 2.0.14

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: bbfa143159bc482e9bc1de4131ef8e2dc0af7e339ca533cc30c86ff2c17f519b
4
- data.tar.gz: 96af3611a0f1abc8bf1460f913152dd824b658351c90b0e7a97c80ebe7ecc24b
3
+ metadata.gz: e68bc3d36d060b292a30c83f236379c62f71d7d55846f8fdb382d07d234c9e01
4
+ data.tar.gz: 93f57c4544edf248ef534fce95628593af22e5795d462405e8c0d7a1c2a3c5b7
5
5
  SHA512:
6
- metadata.gz: fdbb101a62bba32df9830f25490b18d222dcbd8cef0aae43053c64c2891f5cd16d2b8adf3f121732347c747b15c989deb882df9a97e7c54fa05b6c3e786bc62f
7
- data.tar.gz: 8556bcdf6f9364bfdcd029dc628ef840b9deded43247c89f5f519eba182516df887d1320e9036b72b68860f3765a5918f2a7932f6110e2da3cd8857e53795210
6
+ metadata.gz: a4856f793800218b6210be73da3c88d073866b26a7b5eabdd458d73694f619d23f116ff092f5447adae76aa48c8d8b4fda5dfdb9722d03880613e6780cd3175b
7
+ data.tar.gz: decf52fb3c0ee86a62a3ed08a5bc5ba466cb7cffd5546231cbe5f64d4c0abc8f65525251c83014879430a173047a589a9143ecc5586b37b5a82b73e03bb8521f
@@ -1,12 +1,12 @@
1
1
  module Isomorfeus
2
2
  # available settings
3
3
  class << self
4
- def instance_from_sid(sid)
5
- data_class = cached_data_class(sid[0])
6
- data_class.new(key: sid[1])
7
- end
8
-
9
4
  if RUBY_ENGINE == 'opal'
5
+ def instance_from_sid(sid)
6
+ data_class = cached_data_class(sid[0])
7
+ data_class.new(key: sid[1], _loading: true)
8
+ end
9
+
10
10
  def cached_data_classes
11
11
  @cached_data_classes ||= `{}`
12
12
  end
@@ -17,6 +17,11 @@ module Isomorfeus
17
17
  cached_data_classes.JS[class_name] = "::#{class_name}".constantize
18
18
  end
19
19
  else
20
+ def instance_from_sid(sid)
21
+ data_class = cached_data_class(sid[0])
22
+ data_class.new(key: sid[1])
23
+ end
24
+
20
25
  def cached_data_classes
21
26
  @cached_data_classes ||= {}
22
27
  end
@@ -9,15 +9,9 @@ module Isomorfeus
9
9
 
10
10
  def promise_destroy(key:)
11
11
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', self.name, :destroy, key: key).then do |agent|
12
- if agent.processed
13
- agent.result
14
- else
15
- agent.processed = true
16
- if agent.response.key?(:error)
17
- Isomorfeus.raise_error(message: agent.response[:error])
18
- end
12
+ agent.process do
19
13
  Isomorfeus.store.dispatch(type: 'DATA_DESTROY', data: [self.name, key])
20
- agent.result = true
14
+ true
21
15
  end
22
16
  end
23
17
  end
@@ -46,16 +40,10 @@ module Isomorfeus
46
40
  def promise_load!(key:, instance: nil)
47
41
  instance = self.new(key: key, _loading: true) unless instance
48
42
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', self.name, :load, key: key).then do |agent|
49
- if agent.processed
50
- agent.result
51
- else
52
- agent.processed = true
53
- if agent.response.key?(:error)
54
- Isomorfeus.raise_error(message: agent.response[:error])
55
- end
43
+ agent.process do
56
44
  instance._load_from_store!
57
45
  Isomorfeus.store.dispatch(type: 'DATA_LOAD', data: agent.full_response[:data])
58
- agent.result = instance
46
+ instance
59
47
  end
60
48
  end
61
49
  end
@@ -40,14 +40,8 @@ module Isomorfeus
40
40
  data_hash.deep_merge!(included_items: included_items_to_transport) if respond_to?(:included_items_to_transport)
41
41
  class_name = self.class.name
42
42
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', class_name, :create, data_hash).then do |agent|
43
- if agent.processed
44
- agent.result
45
- else
46
- agent.processed = true
47
- if agent.response.key?(:error)
48
- Isomorfeus.raise_error(message: agent.response[:error])
49
- end
50
- data = agent.full_response[:data]
43
+ agent.process do |agnt|
44
+ data = agnt.full_response[:data]
51
45
  if data.key?(class_name) && data[class_name].key?(@key) && data[class_name][@key].key?('new_key')
52
46
  @key = data[class_name][@key]['new_key']
53
47
  @revision = data[class_name][@key]['revision'] if data[class_name][@key].key?('revision')
@@ -55,7 +49,7 @@ module Isomorfeus
55
49
  end
56
50
  _load_from_store!
57
51
  Isomorfeus.store.dispatch(type: 'DATA_LOAD', data: data)
58
- agent.result = self
52
+ self
59
53
  end
60
54
  end
61
55
  end
@@ -88,14 +82,8 @@ module Isomorfeus
88
82
  data_hash.deep_merge!(included_items: included_items_to_transport) if respond_to?(:included_items_to_transport)
89
83
  class_name = self.class.name
90
84
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', class_name, :save, data_hash).then do |agent|
91
- if agent.processed
92
- agent.result
93
- else
94
- agent.processed = true
95
- if agent.response.key?(:error)
96
- Isomorfeus.raise_error(message: agent.response[:error])
97
- end
98
- data = agent.full_response[:data]
85
+ agent.process do |agnt|
86
+ data = agnt.full_response[:data]
99
87
  if data.key?(class_name) && data[class_name].key?(@key) && data[class_name][@key].key?('new_key')
100
88
  @key = data[class_name][@key]['new_key']
101
89
  @revision = data[class_name][@key]['revision'] if data[class_name][@key].key?('revision')
@@ -103,7 +91,7 @@ module Isomorfeus
103
91
  end
104
92
  _load_from_store!
105
93
  Isomorfeus.store.dispatch(type: 'DATA_LOAD', data: data)
106
- agent.result = self
94
+ self
107
95
  end
108
96
  end
109
97
  end
@@ -77,6 +77,12 @@ module Isomorfeus
77
77
  @index_db.put(key, val)
78
78
  end
79
79
 
80
+ def each(&block)
81
+ @db.each do |key, obj|
82
+ block.call(Isomorfeus::Hamster::Marshal.unserialize(obj))
83
+ end
84
+ end
85
+
80
86
  def search(val_key, &block)
81
87
  @index_db.each_value(val_key, &block)
82
88
  end
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.0.10'
3
+ VERSION = '2.0.14'
4
4
  end
5
5
  end
@@ -121,14 +121,20 @@ module LucidObject
121
121
  end
122
122
  end
123
123
  else
124
- attr_s = ":[#{attr}]"
125
- accept_all_attr = attr_s == ":[*]" ? true : false
126
- self.hamster_storage_expander.search(":[:#{val}:]:") do |sid_s_attr|
127
- if accept_all_attr || sid_s_attr.end_with?(attr_s)
128
- sid_s = sid_s_attr.split(':|:[')[0]
129
- obj = self.load(key: sid_s)
124
+ if val == '*'
125
+ self.hamster_storage_expander.each do |obj|
130
126
  objs << obj if obj
131
127
  end
128
+ else
129
+ attr_s = ":[#{attr}]"
130
+ accept_all_attr = attr_s == ":[*]" ? true : false
131
+ self.hamster_storage_expander.search(":[:#{val}:]:") do |sid_s_attr|
132
+ if accept_all_attr || sid_s_attr.end_with?(attr_s)
133
+ sid_s = sid_s_attr.split(':|:[')[0]
134
+ obj = self.load(key: sid_s)
135
+ objs << obj if obj
136
+ end
137
+ end
132
138
  end
133
139
  end
134
140
  objs
@@ -23,16 +23,10 @@ module LucidQuery
23
23
  props = validated_props(props)
24
24
  props[:key] = query_result_instance.key
25
25
  Isomorfeus::Transport.promise_send_path( 'Isomorfeus::Data::Handler::Generic', self.name, :query, props).then do |agent|
26
- if agent.processed
27
- agent.result
28
- else
29
- agent.processed = true
30
- if agent.response.key?(:error)
31
- Isomorfeus.raise_error(message: agent.response[:error])
32
- end
26
+ agent.process do
33
27
  query_result_instance._load_from_store!
34
28
  Isomorfeus.store.dispatch(type: 'DATA_LOAD', data: agent.full_response[:data])
35
- agent.result = query_result_instance
29
+ query_result_instance
36
30
  end
37
31
  end
38
32
  end
@@ -14,7 +14,7 @@ class LucidQueryResult
14
14
  end
15
15
 
16
16
  if RUBY_ENGINE == 'opal'
17
- def initialize(key: nil, result_set: nil)
17
+ def initialize(key: nil, result_set: nil, _loading: false)
18
18
  @class_name = 'LucidQueryResult'
19
19
  @key = key ? key.to_s : self.object_id.to_s
20
20
  @result_set = result_set
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.10
4
+ version: 2.0.14
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-26 00:00:00.000000000 Z
11
+ date: 2022-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.14.6
75
+ version: 0.14.8
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.14.6
82
+ version: 0.14.8
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: isomorfeus-ferret
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,28 +100,28 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.6.1
103
+ version: 0.6.2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.6.1
110
+ version: 0.6.2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: isomorfeus-preact
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 10.6.14
117
+ version: 10.6.25
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.14
124
+ version: 10.6.25
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.10
145
+ version: 2.0.14
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.10
152
+ version: 2.0.14
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.10
159
+ version: 2.0.14
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.10
166
+ version: 2.0.14
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement