hyper-resource 1.0.0.lap39 → 1.0.0.lap40
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hyper_record/class_methods.rb +15 -16
- data/lib/hyperloop/resource/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1bae140804e9630f4b1187a1f06cb8441cf40d784ebd6cd2dbd4c00851806a5
|
4
|
+
data.tar.gz: 632f717c16f5023cf55cb323bc481025fc25be3c203fce90b3866f438c882684
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 537abb30fdfa234afa6dbb8f4751655859d615ff582b58916d30d7e0e5ed78223e551a451b34b36c569a3f7599da384ebcdaee67cd1d0c396d826bffb1a6c63c
|
7
|
+
data.tar.gz: 86c8360462145706f9f978df2d2bd6664f15a93235cb90fe28c60637f9559095e2f3b254fc164d344b8d69c6d3e72db6f93116f533cb841552dd43d0ac0da74e
|
@@ -87,13 +87,12 @@ module HyperRecord
|
|
87
87
|
record_in_progress = if _record_cache.has_key?(id)
|
88
88
|
_record_cache[id]
|
89
89
|
else
|
90
|
-
self.new
|
90
|
+
self.new(id: id)
|
91
91
|
end
|
92
92
|
record_in_progress_key = "#{self.to_s}_#{record_in_progress.object_id}"
|
93
93
|
React::State.get_state(observer, record_in_progress_key) if observer
|
94
|
-
return _record_cache[id] if _record_cache.has_key?(id)
|
95
|
-
|
96
|
-
_find_record(id, record_in_progress, record_in_progress_key).then do
|
94
|
+
return _record_cache[id] if _record_cache.has_key?(id) && _class_fetch_states["record_#{id}"] == 'i'
|
95
|
+
_find_record(id, record_in_progress).then do
|
97
96
|
React::State.set_state(observer, record_in_progress_key, `Date.now() + Math.random()`) if observer
|
98
97
|
end
|
99
98
|
record_in_progress
|
@@ -103,11 +102,9 @@ module HyperRecord
|
|
103
102
|
record_in_progress = if _record_cache.has_key?(id)
|
104
103
|
_record_cache[id]
|
105
104
|
else
|
106
|
-
self.new
|
105
|
+
self.new(id: id)
|
107
106
|
end
|
108
|
-
|
109
|
-
_record_cache[id] = record_in_progress unless _record_cache.has_key?(id)
|
110
|
-
_find_record(id, record_in_progress, record_in_progress_key)
|
107
|
+
_find_record(id, record_in_progress)
|
111
108
|
end
|
112
109
|
|
113
110
|
def find_record_by(hash)
|
@@ -395,17 +392,19 @@ module HyperRecord
|
|
395
392
|
@_class_state_key
|
396
393
|
end
|
397
394
|
|
398
|
-
def _find_record(id, record_in_progress
|
395
|
+
def _find_record(id, record_in_progress)
|
396
|
+
_class_fetch_states["record_#{id}"] = 'i'
|
399
397
|
_promise_get("#{resource_base_uri}/#{id}.json").then do |response|
|
400
398
|
klass_key = self.to_s.underscore
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
end
|
399
|
+
# optimization for fetching relations with records
|
400
|
+
# reflections.keys.each do |relation|
|
401
|
+
# if response.json[klass_key].has_key?(relation)
|
402
|
+
# response.json[klass_key][r_or_s] = _convert_array_to_collection(response.json[klass_key][relation])
|
403
|
+
# record_in_progress.instance_variable_get(:@fetch_states)[relation] = 'f'
|
404
|
+
# end
|
405
|
+
# end
|
407
406
|
record_in_progress._initialize_from_hash(response.json[klass_key]) if response.json[klass_key]
|
408
|
-
_class_fetch_states["record_#{id}"]
|
407
|
+
_class_fetch_states["record_#{id}"] = 'f'
|
409
408
|
record_in_progress
|
410
409
|
end.fail do |response|
|
411
410
|
error_message = "#{self.to_s}.find(#{id}) failed to fetch record!"
|