pinkman 1.2.2 → 1.2.3

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
  SHA256:
3
- metadata.gz: 94f5d8a099404acf88b9d24b54a871750671a9220a7f479c237935f627a5a240
4
- data.tar.gz: 2979c9a445062f1bcb9e63110136c7be3b3a297062406f0583456d0404467c52
3
+ metadata.gz: 31a9308efa0befc57d8b9a1c28ee69af741e4d4b8f250d1f604c75bb0a0d5a7b
4
+ data.tar.gz: bd886c701af5ffccbce68bb1d3399a36ded3cf8e9a35ce5b9feede5c7625fa04
5
5
  SHA512:
6
- metadata.gz: 25beb397051a13db35aba3708451c5c800575f1756e335dcc94c206013f11ace6ff27ba7f2536c2cbb3442fe84d7cce0a8b5ab3cd911363139236a0b411b2012
7
- data.tar.gz: bb99b955fb1b60d8d870feeefb522f412c24310768fc743d618e564c4f597bd15d4fbcdb19d22d56427cb0038d2afe60ea3210023ad7c38e14d3510f92844ac7
6
+ metadata.gz: 8bc1f5040511a5dd49aa98049c859f0db640b7309037690198a3592c692fd935a5f44b4b6e5af8b617b5e71a95a9e3fa7514c19cebb61978b0b9bf1646c3857b
7
+ data.tar.gz: 4bc59821dd418ee40a6eea96149f40e5f7028dfe18580b18f81a7979aaea2165b85ee57e4ebe1cad52ea8950c0e342fb7e8562c246226e605dd6bc8dda2e44fe
@@ -18,6 +18,7 @@ Pinkman.closest = (jquery,level=0) ->
18
18
  class window.PinkmanController extends window.PinkmanObject
19
19
 
20
20
  clear: ->
21
+ @clearSubscriptions()
21
22
  @actions.each (a) ->
22
23
  a.clear()
23
24
 
@@ -26,6 +27,7 @@ class window.PinkmanController extends window.PinkmanObject
26
27
 
27
28
  constructor: (args...) ->
28
29
  @actions = new PinkmanActions
30
+ @subscriptions = []
29
31
  super(args...)
30
32
 
31
33
  selector: ->
@@ -294,7 +296,15 @@ class window.PinkmanController extends window.PinkmanObject
294
296
 
295
297
  endBottom: () ->
296
298
  Pinkman._bottomTriggered = false
297
-
299
+
300
+ clearSubscriptions: ->
301
+ i = 0
302
+ for sub in @subscriptions
303
+ i = i + 1
304
+ sub.unsubscribe()
305
+ # console.log sub
306
+ # console.log 'unsubscribed'
307
+ @subscriptions = [] if i == @subscriptions.length
298
308
 
299
309
  subscribe: (channel,opt) ->
300
310
  throw 'ActionCable not found.' unless Pinkman.cable?
@@ -313,7 +323,7 @@ class window.PinkmanController extends window.PinkmanObject
313
323
  params.room = opt.room
314
324
  params.scope = opt.scope
315
325
  params.filter_by = (opt.filter_by or opt.filterBy ) if (opt.filterBy? or opt.filter_by?)
316
- Pinkman.cable.subscriptions.create params, received: callback
326
+ @subscriptions.push(Pinkman.cable.subscriptions.create params, received: callback)
317
327
 
318
328
  scrolling: (callback) ->
319
329
  $(document).on 'scroll', =>
@@ -377,7 +387,7 @@ class window.PinkmanAction extends window.PinkmanObject
377
387
  @_event_listening = new Object
378
388
  super(args...)
379
389
  @call = ->
380
- @events = []
390
+ @_events = []
381
391
 
382
392
  # helper to define custom actions
383
393
  @define: (options) ->
@@ -432,15 +442,16 @@ class window.PinkmanAction extends window.PinkmanObject
432
442
  # Desc: removes event
433
443
  clear: ->
434
444
  @_event_listening = new Object
435
- for ev in @events
445
+ for ev in @_events
436
446
  $('body').off ev, @selector
447
+
437
448
 
438
449
  # Desc: attaches one single event
439
450
  attach: (eventName) ->
440
451
  if Pinkman.isString(eventName) and not @_event_listening[eventName]
441
452
  action = this
442
453
  action._event_listening[eventName] = yes
443
- @events.push(eventName)
454
+ @_events.push(eventName)
444
455
  $('body').on eventName, action.selector, (ev) ->
445
456
  # debugger
446
457
  # console.log "#{action.id}: called - #{action.name}"
@@ -97,6 +97,7 @@ class window.PinkmanRouteMatcher extends Pinkman.object
97
97
  if @controllers.any()?
98
98
  Pinkman.controllers.unbindScrolling()
99
99
  # console.log 'clear dos Pinkman.controllers'
100
+
100
101
  @controllers.each (c) =>
101
102
  # console.log 'dentro dos controllers desse router'
102
103
  c.setParams(@params())
@@ -272,6 +273,11 @@ class window.PinkmanRouter
272
273
  r = Pinkman.routes.match(path)
273
274
  if r? and r
274
275
  @previousMatcher = @currentMatcher if @currentMatcher?
276
+
277
+ if @previousMatcher?
278
+ @previousMatcher.controllers.each (c) ->
279
+ c.clearSubscriptions()
280
+
275
281
  @currentMatcher = r
276
282
  # console.log r
277
283
  r.options = options
@@ -1,3 +1,3 @@
1
1
  module Pinkman
2
- VERSION = "1.2.2"
2
+ VERSION = "1.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinkman
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Agilso Oliveira
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-07 00:00:00.000000000 Z
11
+ date: 2019-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler