hyper-resource 1.0.0.lap39 → 1.0.0.lap40
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 +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!"
|