volt-watch 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/volt/watch.rb +33 -6
- data/lib/volt/watch/version.rb +1 -1
- 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: 3a601784ccab5ec7a97019dfa491e666d496ba88
|
4
|
+
data.tar.gz: 670d9cc1feeee240b0a0225a954806cbe7d19f7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bec5cdf14cf2f3c60b2bd130be534cd6d6fcee0605a173790d401feb51e79a97fc6ca02798c9b3374a349f27e9d9066b5046de61df5c8b9fe5548f6384c20b3f
|
7
|
+
data.tar.gz: 7a78bf09343d9f393a3ed106ffbbd807995a82ba2a8926c4ef473e34b49e2d1cdaf65dad8d03310b3d8053477f8934e78884b9b3552d885e56b7cc11cee75c64
|
data/lib/volt/watch.rb
CHANGED
@@ -225,25 +225,52 @@ module Volt
|
|
225
225
|
|
226
226
|
def ensure_reactive(model)
|
227
227
|
unless reactive?(model)
|
228
|
-
raise ArgumentError, 'argument must be Volt Model, ArrayModel, ReactiveArray or ReactiveHash'
|
228
|
+
raise ArgumentError, 'argument must be Volt Model, ArrayModel, ReactiveArray or ReactiveHash...'
|
229
229
|
end
|
230
230
|
end
|
231
231
|
|
232
232
|
def reactive?(model)
|
233
|
+
reactive_model?(model) ||
|
234
|
+
reactive_array?(model) ||
|
235
|
+
reactive_hash?(model)
|
236
|
+
end
|
237
|
+
|
238
|
+
# Must behave like a Volt::Model
|
239
|
+
# and respond to #get(attribute)
|
240
|
+
def reactive_model?(model)
|
233
241
|
Volt::Model === model ||
|
242
|
+
# dirty way of letting anything be reactive if it wants
|
243
|
+
(model.respond_to?(:reactive_model?) && model.reactive_model?) ||
|
244
|
+
(model.class.respond_to?(:reactive_model?) && model.class.reactive_model?)
|
245
|
+
end
|
246
|
+
|
247
|
+
# Must behave like a Volt::ArrayModel or Volt::ReactiveArray
|
248
|
+
def reactive_array?(model)
|
234
249
|
Volt::ArrayModel === model ||
|
235
|
-
Volt::ReactiveArray
|
236
|
-
|
250
|
+
Volt::ReactiveArray === model ||
|
251
|
+
# dirty way of letting anything be reactive if it wants
|
252
|
+
(model.respond_to?(:reactive_array?) && model.reactive_array?) ||
|
253
|
+
(model.class.respond_to?(:reactive_array?) && model.class.reactive_array?)
|
254
|
+
end
|
255
|
+
|
256
|
+
# Must behave like a Volt::ReactiveHash
|
257
|
+
def reactive_hash?(model)
|
258
|
+
Volt::ReactiveHash === model ||
|
259
|
+
# dirty way of letting anything be reactive if it wants
|
260
|
+
(model.respond_to?(:reactive_hash?) && model.reactive_hash?) ||
|
261
|
+
(model.class.respond_to?(:reactive_hash?) && model.class.reactive_hash?)
|
237
262
|
end
|
238
263
|
|
239
264
|
def traverse(node, mode, except, pass_model, block)
|
240
265
|
# debug __method__, __LINE__, "node=#{node} mode=#{mode} except=#{except}"
|
241
|
-
if
|
266
|
+
if reactive_model?(node)
|
242
267
|
traverse_model(node, mode, except, pass_model, block)
|
243
|
-
elsif
|
268
|
+
elsif reactive_array?(node)
|
244
269
|
traverse_array(node, mode, except, pass_model, block)
|
245
|
-
elsif
|
270
|
+
elsif reactive_hash?(node)
|
246
271
|
traverse_hash(node, mode, except, pass_model, block)
|
272
|
+
else
|
273
|
+
# go no further
|
247
274
|
end
|
248
275
|
end
|
249
276
|
|
data/lib/volt/watch/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: volt-watch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin Gunn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|