live_record 0.2.4 → 0.2.5
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/README.md +4 -2
- data/app/assets/javascripts/live_record/model/create.coffee +13 -12
- data/lib/live_record/version.rb +1 -1
- data/spec/features/live_record_syncing_spec.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 941011b728166d7c1dc7853bcf5f1fc0b02d77da
|
4
|
+
data.tar.gz: ae38164516a9cb42fe726350ca1e816d34f727b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65e3f6082c3b48bd2ce8f96d2c05eeefcbba020dba309229baae94926a8c5df916a3d59e9551fb32dc0ce9a557952fa2303f9363bb6c6b058411d5a2130950e5
|
7
|
+
data.tar.gz: 456403469aa4f8b2c53e374e2cd621a13f9b45a20b1f317381e6d98d2e7c83cb1e0b6c9374215500ab7f62a05a80779dcdbafdfb27a75c7837db5f75a8ada012
|
data/README.md
CHANGED
@@ -117,7 +117,7 @@
|
|
117
117
|
1. Add the following to your `Gemfile`:
|
118
118
|
|
119
119
|
```ruby
|
120
|
-
gem 'live_record', '~> 0.2.
|
120
|
+
gem 'live_record', '~> 0.2.5'
|
121
121
|
```
|
122
122
|
|
123
123
|
2. Run:
|
@@ -284,7 +284,7 @@
|
|
284
284
|
* `"forbidden"` - Current User is not authorized to sync record changes. Happens when Model's `live_record_whitelisted_attributes` method returns empty array.
|
285
285
|
* `"bad_request"` - Happens when `LiveRecord.Model.create({modelName: 'INCORRECTMODELNAME'})`
|
286
286
|
|
287
|
-
8. Load the records into the JS Model-store
|
287
|
+
8. Load the records into the JS Model-store:
|
288
288
|
|
289
289
|
* Any record created/loaded in the JS-store is automatically synced whenever it is updated from the backend
|
290
290
|
* When reconnected after losing connection, the records in the store are synced automatically.
|
@@ -610,6 +610,8 @@
|
|
610
610
|
* MIT
|
611
611
|
|
612
612
|
## Changelog
|
613
|
+
* 0.2.5
|
614
|
+
* fixed a major bug where same-model record instances were all sharing the same `@_callbacks` object, which then effectively calling also callbacks not specifically defined just for a specific record instance.
|
613
615
|
* 0.2.4
|
614
616
|
* you can now pass in `{reload: true}` to `subscribe()` like the folowing:
|
615
617
|
* `MODEL.subscribe({reload: true})` to immediately load all records from backend, and not just the new ones
|
@@ -11,6 +11,19 @@ LiveRecord.Model.create = (config) ->
|
|
11
11
|
if Model.prototype[attribute_key] == undefined
|
12
12
|
Model.prototype[attribute_key] = ->
|
13
13
|
@attributes[attribute_key]
|
14
|
+
|
15
|
+
@_callbacks = {
|
16
|
+
'on:connect': [],
|
17
|
+
'on:disconnect': [],
|
18
|
+
'on:responseError': [],
|
19
|
+
'before:create': [],
|
20
|
+
'after:create': [],
|
21
|
+
'before:update': [],
|
22
|
+
'after:update': [],
|
23
|
+
'before:destroy': [],
|
24
|
+
'after:destroy': []
|
25
|
+
}
|
26
|
+
|
14
27
|
this
|
15
28
|
|
16
29
|
Model.modelName = config.modelName
|
@@ -248,18 +261,6 @@ LiveRecord.Model.create = (config) ->
|
|
248
261
|
'after:destroy': []
|
249
262
|
}
|
250
263
|
|
251
|
-
Model.prototype._callbacks = {
|
252
|
-
'on:connect': [],
|
253
|
-
'on:disconnect': [],
|
254
|
-
'on:responseError': [],
|
255
|
-
'before:create': [],
|
256
|
-
'after:create': [],
|
257
|
-
'before:update': [],
|
258
|
-
'after:update': [],
|
259
|
-
'before:destroy': [],
|
260
|
-
'after:destroy': []
|
261
|
-
}
|
262
|
-
|
263
264
|
# adding new callbackd to the list
|
264
265
|
Model.prototype.addCallback = Model.addCallback = (callbackKey, callbackFunction) ->
|
265
266
|
index = @_callbacks[callbackKey].indexOf(callbackFunction)
|
data/lib/live_record/version.rb
CHANGED
@@ -215,5 +215,22 @@ RSpec.feature 'LiveRecord Syncing', type: :feature do
|
|
215
215
|
wait before: -> { evaluate_script("LiveRecord.Model.all.Post.all[#{post_created_before_disconnection.id}] == undefined") }, becomes: -> (value) { value == false }
|
216
216
|
expect(evaluate_script("LiveRecord.Model.all.Post.all[#{post_created_before_disconnection.id}] == undefined")).to be true
|
217
217
|
end
|
218
|
+
|
219
|
+
scenario 'JS-Client should not have shared callbacks for those callbacks defined only for a particular post record', js: true do
|
220
|
+
visit '/posts'
|
221
|
+
|
222
|
+
wait before: -> { evaluate_script("Object.keys( LiveRecord.Model.all.Post.all ).length") }, becomes: -> (value) { value == posts.count }, duration: 10.seconds
|
223
|
+
expect(evaluate_script("Object.keys( LiveRecord.Model.all.Post.all ).length")).to be posts.count
|
224
|
+
|
225
|
+
execute_script(
|
226
|
+
<<-eos
|
227
|
+
var post1 = LiveRecord.Model.all.Post.all[#{post1.id}];
|
228
|
+
var someCallbackFunction = function() {};
|
229
|
+
post1.addCallback('after:create', someCallbackFunction);
|
230
|
+
eos
|
231
|
+
)
|
232
|
+
|
233
|
+
expect(evaluate_script("LiveRecord.Model.all.Post.all[#{post2.id}]._callbacks['after:create'].length")).to eq 0
|
234
|
+
end
|
218
235
|
end
|
219
236
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: live_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jules Roman B. Polidario
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|