motion-wiretap 1.1.3 → 1.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99db3db8e4cf9422189294a89b8291de93af7548
4
- data.tar.gz: f8565d3e0cde697b9ca8c02bdf1f932f0ce635bc
3
+ metadata.gz: c00742f3bdb9d4cd330e42f101a484650651a0ee
4
+ data.tar.gz: e2e14fb9ec9bf951cc51d2b3cae3722ebea63d31
5
5
  SHA512:
6
- metadata.gz: 1e217902b0a8c869efcf462ad728046dffcd492a613781e8284d2db7449caa4e2780bdeebc0390eda3a453fdc7a6c4282c89314d767f61e0e757ddde2955ec6a
7
- data.tar.gz: 64755e1482c0fb48241805ff5d30a41832833a3fb77d9878ef25e01fbf2612575844eff88aa8a71621f8321ec61fd1856f392ce6c435c8599bfecf6e76b95f8a
6
+ metadata.gz: 9f04ca6c2feb0c9f8c6d95ac969294d4c1b371907775451392c85e2c0fdecc63b1d755c0ea565027456e09226e4a4c1183a9d863f23202401df9ff72756f3891
7
+ data.tar.gz: 2cc1e685b0732dd594da91d3aeac89e25614bc78e7f4fbafaffca2255744c382cd69b019122e2873c4f44cface5e9ddb460a0e72a2dc3090694352cc845a1a81
@@ -8,8 +8,8 @@ module MotionWiretap
8
8
  # The SINGLETON value does not trigger a 'change' event. It is for internal
9
9
  # use only.
10
10
  def initialize(value=SINGLETON, &block)
11
- @value = value
12
11
  super(&block)
12
+ @value = value
13
13
  end
14
14
 
15
15
  def value
@@ -9,12 +9,15 @@ module MotionWiretap
9
9
  SINGLETON = Class.new.new
10
10
 
11
11
  class Wiretap
12
+ # wiretaps have an intrinsic "current value"
13
+ attr :value
12
14
 
13
15
  def initialize(&block)
14
16
  @is_torn_down = false
15
17
  @is_completed = false
16
18
  @is_error = false
17
19
  @queue = nil
20
+ @value = nil
18
21
 
19
22
  @listener_handlers = []
20
23
  @completion_handlers = []
@@ -70,6 +73,11 @@ module MotionWiretap
70
73
 
71
74
  def trigger_changed(*values)
72
75
  return if @is_torn_down || @is_completed || @is_error
76
+ if values.length == 1
77
+ @value = values.first
78
+ else
79
+ @value = values
80
+ end
73
81
 
74
82
  @listener_handlers.each do |block_or_wiretap|
75
83
  trigger_changed_on(block_or_wiretap, values)
@@ -215,11 +223,9 @@ module MotionWiretap
215
223
 
216
224
  class WiretapKvo < WiretapTarget
217
225
  attr :property
218
- attr :value
219
226
 
220
227
  def initialize(target, property, &block)
221
228
  @property = property
222
- @value = nil
223
229
  @initial_is_set = false
224
230
  @bound_to = []
225
231
  super(target, &block)
@@ -239,25 +245,22 @@ module MotionWiretap
239
245
  super
240
246
  end
241
247
 
242
- def trigger_changed(*values)
243
- super(@value)
244
- end
245
-
246
248
  def bind_to(wiretap)
247
249
  @bound_to << wiretap
248
250
  wiretap.listen do |value|
249
251
  @target.send("#{@property}=".to_sym, value)
250
252
  end
251
- wiretap.trigger_changed
253
+ wiretap.trigger_changed(wiretap.value)
252
254
 
253
255
  return self
254
256
  end
255
257
 
256
258
  def observeValueForKeyPath(path, ofObject: target, change: change, context: context)
257
- @value = change[NSKeyValueChangeNewKey]
259
+ value = change[NSKeyValueChangeNewKey]
258
260
  if @initial_is_set
259
- trigger_changed(@value)
261
+ trigger_changed(value)
260
262
  else
263
+ @value = value
261
264
  @initial_is_set = true
262
265
  end
263
266
  end
@@ -333,6 +336,7 @@ module MotionWiretap
333
336
  def initialize(parent)
334
337
  @parent = parent
335
338
  @parent.listen(self)
339
+ @value = @parent.value
336
340
  super()
337
341
  end
338
342
 
@@ -353,7 +357,7 @@ module MotionWiretap
353
357
  # passes the values through the filter before passing up to the parent
354
358
  # implementation
355
359
  def trigger_changed(*values)
356
- if ( @filter.call(*values) )
360
+ if @filter.call(*values)
357
361
  super(*values)
358
362
  end
359
363
  end
@@ -364,7 +368,6 @@ module MotionWiretap
364
368
 
365
369
  def initialize(parent, combiner)
366
370
  @combiner = combiner
367
-
368
371
  super(parent)
369
372
  end
370
373
 
@@ -381,7 +384,6 @@ module MotionWiretap
381
384
  def initialize(parent, memo, reducer)
382
385
  @reducer = reducer
383
386
  @memo = memo
384
-
385
387
  super(parent)
386
388
  end
387
389
 
@@ -397,7 +399,6 @@ module MotionWiretap
397
399
 
398
400
  def initialize(parent, mapper)
399
401
  @mapper = mapper
400
-
401
402
  super(parent)
402
403
  end
403
404
 
@@ -1,3 +1,3 @@
1
1
  module MotionWiretap
2
- VERSION = '1.1.3'
2
+ VERSION = '1.1.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motion-wiretap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Colin T.A. Gray