volt-watch 0.1.5 → 0.1.6
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/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:
|