isomorfeus-data 2.0.6 → 2.0.10

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: 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