isomorfeus-data 2.0.6 → 2.0.10

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: 3102d086efaef2d66e13878c4febecb8b2c66ea7f70263a34d14554aac8caca2
4
- data.tar.gz: 186389800b497ba0f9ddcffa9b4ed6260d8f714f725f5f9d0f955b3a2c7d8c2e
3
+ metadata.gz: bbfa143159bc482e9bc1de4131ef8e2dc0af7e339ca533cc30c86ff2c17f519b
4
+ data.tar.gz: 96af3611a0f1abc8bf1460f913152dd824b658351c90b0e7a97c80ebe7ecc24b
5
5
  SHA512:
6
- metadata.gz: ba7fbbfe46297c85fa472edacb1ad2a4e22301331f9a43c69d4b7fe4aa34517824aea65a25543add484d7cdd30df6ad638025734970e6dbe64cb32663479237d
7
- data.tar.gz: 20d8473bb9c83b13dc5aa8768ef35c35d2fbb2e4fff01f566a4771b35242e382f186ee6563dc6b9fe9a2b4a1e7d8202013856dfba621a3f95cb173699a74ed8a
6
+ metadata.gz: fdbb101a62bba32df9830f25490b18d222dcbd8cef0aae43053c64c2891f5cd16d2b8adf3f121732347c747b15c989deb882df9a97e7c54fa05b6c3e786bc62f
7
+ data.tar.gz: 8556bcdf6f9364bfdcd029dc628ef840b9deded43247c89f5f519eba182516df887d1320e9036b72b68860f3765a5918f2a7932f6110e2da3cd8857e53795210
data/lib/data_uri/uri.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module URI
2
2
  class Data < Generic
3
- COMPONENT = [:scheme, :opaque].freeze
4
- MIME_TYPE_RE = %r{^([-\w.+]+/[-\w.+]*)}.freeze
5
- MIME_PARAM_RE = /^;([-\w.+]+)=([^;,]+)/.freeze
3
+ COMPONENT = [:scheme, :opaque]
4
+ MIME_TYPE_RE = %r{^([-\w.+]+/[-\w.+]*)}
5
+ MIME_PARAM_RE = /^;([-\w.+]+)=([^;,]+)/
6
6
 
7
7
  attr_reader :content_type, :data
8
8
 
data/lib/data_uri.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'uri'
2
2
  require 'base64'
3
3
  require 'stringio'
4
-
5
4
  require 'data_uri/uri'
@@ -70,13 +70,9 @@ module Isomorfeus
70
70
  !!instance_exec(key: key, &@_destroy_block)
71
71
  end
72
72
 
73
- def promise_load(key:)
74
- instance = self.load(key: key)
75
- result_promise = Promise.new
76
- result_promise.resolve(instance)
77
- result_promise
73
+ def promise_destroy(key:)
74
+ Promise.new.resolve(destroy(key: key))
78
75
  end
79
- alias promise_load! promise_load
80
76
 
81
77
  def load(key:)
82
78
  data = instance_exec(key: key, &@_load_block)
@@ -86,6 +82,14 @@ module Isomorfeus
86
82
  end
87
83
  alias load! load
88
84
 
85
+ def promise_load(key:)
86
+ instance = self.load(key: key)
87
+ result_promise = Promise.new
88
+ result_promise.resolve(instance)
89
+ result_promise
90
+ end
91
+ alias promise_load! promise_load
92
+
89
93
  def execute_create(&block)
90
94
  @_create_block = block
91
95
  end
@@ -115,14 +119,6 @@ module Isomorfeus
115
119
  new(key: key, **things).promise_create
116
120
  end
117
121
 
118
- def save(instance:)
119
- instance.save
120
- end
121
-
122
- def promise_save(instance:)
123
- instance.promise_save
124
- end
125
-
126
122
  def current_user
127
123
  Isomorfeus.current_user
128
124
  end
@@ -66,16 +66,21 @@ module Isomorfeus
66
66
  end
67
67
 
68
68
  def promise_destroy
69
- self.class.promise_destroy(@key)
69
+ self.class.promise_destroy(key: @key)
70
70
  end
71
71
 
72
72
  def reload
73
- self.class.promise_load!(@key, self)
73
+ self.class.promise_load!(key: @key, instance: self)
74
74
  self
75
75
  end
76
76
 
77
77
  def promise_reload
78
- self.class.promise_load!(@key, self)
78
+ self.class.promise_load!(key: @key, instance: self)
79
+ end
80
+
81
+ def save
82
+ promise_save
83
+ self
79
84
  end
80
85
 
81
86
  def promise_save
@@ -122,6 +127,20 @@ module Isomorfeus
122
127
  promise.resolve(create)
123
128
  end
124
129
 
130
+ def destroy
131
+ self.class.destroy(key: @key)
132
+ end
133
+
134
+ def promise_destroy
135
+ self.class.promise_destroy(key: @key)
136
+ end
137
+
138
+ # reload must be implemented by mixin
139
+
140
+ def promise_reload
141
+ Promise.new.resolve(reload)
142
+ end
143
+
125
144
  def save
126
145
  previous_key = self.key
127
146
  instance = instance_exec(&self.class.instance_variable_get(:@_save_block))
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Data
3
- VERSION = '2.0.6'
3
+ VERSION = '2.0.10'
4
4
  end
5
5
  end
@@ -168,6 +168,13 @@ module LucidDocument
168
168
  def each(&block)
169
169
  @_raw_fields.each(&block)
170
170
  end
171
+
172
+ def reload
173
+ new_instance = self.class.load(key: @key)
174
+ @_raw_fields = new_instance.fields
175
+ _unchange!
176
+ self
177
+ end
171
178
  end # RUBY_ENGINE
172
179
  end
173
180
  end
@@ -215,6 +215,13 @@ module LucidObject
215
215
  def each(&block)
216
216
  @_raw_attributes.each(&block)
217
217
  end
218
+
219
+ def reload
220
+ new_instance = self.class.load(key: @key)
221
+ @_raw_attributes = new_instance.attributes
222
+ _unchange!
223
+ self
224
+ end
218
225
  end # RUBY_ENGINE
219
226
  end
220
227
  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]
data/opal/uri/generic.rb CHANGED
@@ -12,7 +12,7 @@ module URI
12
12
  :path, :opaque,
13
13
  :query,
14
14
  :fragment
15
- ].freeze
15
+ ]
16
16
 
17
17
  def initialize(scheme,
18
18
  userinfo, host, port, registry,
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.6
4
+ version: 2.0.10
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-24 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.6
145
+ version: 2.0.10
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.6
152
+ version: 2.0.10
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.6
159
+ version: 2.0.10
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.6
166
+ version: 2.0.10
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rake
169
169
  requirement: !ruby/object:Gem::Requirement