model_updates 0.0.12 → 0.0.13
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73c1dd0902ad412ea17983bbc6c3faf942e90897
|
4
|
+
data.tar.gz: 223a72ce8bf6ca3d13ac335d899be87b8690d453
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c95fe1dede8256bbaadefb647a9069aa9847940f1f2f8984d53895457ef5111531c931a166946274bc4448db062f29605f7f3c6fcd58c013e5fc3eb4307abf0a
|
7
|
+
data.tar.gz: b3fa1bd6fcdff3c7d488ce497fc81158d5b0e4b8ecf7f4045edc57c44bcfb9a956e4b56c43fa206da98e25fb3dbe489f3bf2626c90667270c50e558a53a69b3d
|
data/README.md
CHANGED
@@ -1,7 +1,19 @@
|
|
1
1
|
# ModelUpdates
|
2
2
|
|
3
|
-
Rails gem to push updates
|
3
|
+
Rails gem to push updates through models into the frontend through ActionCable easily like this:
|
4
4
|
|
5
|
+
JavaScript:
|
6
|
+
```js
|
7
|
+
ModelUpdates.connectModel("User", userId, "changed-name", function(args) {
|
8
|
+
console.log("User changed his name to: " + args.new_name)
|
9
|
+
})
|
10
|
+
```
|
11
|
+
|
12
|
+
Ruby:
|
13
|
+
```ruby
|
14
|
+
user = User.find(user_id)
|
15
|
+
user.model_updates_call("changed-name", new_name: "test")
|
16
|
+
```
|
5
17
|
|
6
18
|
## Installation
|
7
19
|
Add this line to your application's Gemfile:
|
@@ -107,6 +119,8 @@ Now that element should update automatically when the model is changed
|
|
107
119
|
|
108
120
|
## Callbacks
|
109
121
|
|
122
|
+
### Updates
|
123
|
+
|
110
124
|
You can also do a callback, once the value is changed.
|
111
125
|
|
112
126
|
```erb
|
@@ -136,6 +150,17 @@ data = {
|
|
136
150
|
}
|
137
151
|
```
|
138
152
|
|
153
|
+
You can also do this with pure JavaScript instead of tags like this:
|
154
|
+
|
155
|
+
```js
|
156
|
+
ModelUpdates.connectChanged("Task", taskId, function(data) {
|
157
|
+
$(".task-element").text(data.changes.name)
|
158
|
+
})
|
159
|
+
ModelUpdates.update()
|
160
|
+
```
|
161
|
+
|
162
|
+
### Creates
|
163
|
+
|
139
164
|
You can receive create callbacks like this:
|
140
165
|
|
141
166
|
```js
|
@@ -144,6 +169,8 @@ ModelUpdates.Create.connect({model: "MyModel", onCreated: function(data) {
|
|
144
169
|
})
|
145
170
|
```
|
146
171
|
|
172
|
+
### Destroys
|
173
|
+
|
147
174
|
If you want an element automatically removed on destroy:
|
148
175
|
```erb
|
149
176
|
<div class="model-updates" data-model-updates-model="<%= model.class.name %>" data-model-updates-id="<%= model.id %>" data-model-updates-remove-on-destroy="true">
|
@@ -175,25 +202,25 @@ ModelUpdates.update()
|
|
175
202
|
Call an event on a specific model:
|
176
203
|
```ruby
|
177
204
|
user = User.find(user_id)
|
178
|
-
user.model_updates_call("changed-
|
205
|
+
user.model_updates_call("changed-name", new_name: "test")
|
179
206
|
```
|
180
207
|
|
181
208
|
Connect to a specific model:
|
182
209
|
```js
|
183
|
-
ModelUpdates.connectModel("User", userId, "changed-
|
184
|
-
console.log("User changed his
|
210
|
+
ModelUpdates.connectModel("User", userId, "changed-name", function(args) {
|
211
|
+
console.log("User changed his name to: " + args.new_name)
|
185
212
|
})
|
186
213
|
```
|
187
214
|
|
188
215
|
Call an event on a model class:
|
189
216
|
```ruby
|
190
|
-
User.model_updates_call("changed-
|
217
|
+
User.model_updates_call("changed-name", new_name: "test")
|
191
218
|
```
|
192
219
|
|
193
220
|
Connect to events called on a models class:
|
194
221
|
```js
|
195
|
-
ModelUpdates.connectModelClass("User", "changed-
|
196
|
-
console.log("Someone his
|
222
|
+
ModelUpdates.connectModelClass("User", "changed-name", function(args) {
|
223
|
+
console.log("Someone his name to: " + args.new_name)
|
197
224
|
})
|
198
225
|
```
|
199
226
|
|
@@ -13,8 +13,8 @@ ModelUpdates.Update = class Update {
|
|
13
13
|
|
14
14
|
for(var key in callbacks) {
|
15
15
|
var callback = callbacks[key]
|
16
|
-
ModelUpdates.debug("Calling callback")
|
17
|
-
callback
|
16
|
+
ModelUpdates.debug("Calling callback: " + JSON.stringify(json))
|
17
|
+
callback(json)
|
18
18
|
}
|
19
19
|
} else {
|
20
20
|
console.log("No callbacks for " + json.model + "(" + json.id + ")")
|
@@ -16,7 +16,7 @@ module ModelUpdates::ModelExtensions
|
|
16
16
|
attribute_changes = {}
|
17
17
|
|
18
18
|
args.fetch(:attributes).each do |attribute_name|
|
19
|
-
method_changed = "#{attribute_name}
|
19
|
+
method_changed = "saved_changed_to_#{attribute_name}?"
|
20
20
|
next if respond_to?(method_changed) && !__send__(method_changed)
|
21
21
|
attribute_changes[attribute_name] = __send__(attribute_name)
|
22
22
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model_updates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaspernj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.
|
19
|
+
version: 5.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5.
|
26
|
+
version: 5.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sprockets-es6
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|