Class: ChainListener

Inherits:
Object show all
Defined in:
lib/volt/reactive/event_chain.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event_chain, object, callback) ⇒ ChainListener

Returns a new instance of ChainListener.



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/volt/reactive/event_chain.rb', line 6

def initialize(event_chain, object, callback)
  @event_chain = event_chain
  @object = object
  @callback = callback

  if RUBY_PLATFORM == 'opal' && CHAIN_DEBUG
    `window.chain_listeners = window.chain_listeners || 0;`
    `window.chain_listeners += 1;`
    `console.log('chain listeners: ', window.chain_listeners)`
  end
end

Instance Attribute Details

#callbackObject (readonly)

Returns the value of attribute callback.



4
5
6
# File 'lib/volt/reactive/event_chain.rb', line 4

def callback
  @callback
end

#objectObject (readonly)

Returns the value of attribute object.



4
5
6
# File 'lib/volt/reactive/event_chain.rb', line 4

def object
  @object
end

Instance Method Details

#removeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/volt/reactive/event_chain.rb', line 18

def remove
  # raise "event chain already removed" if @removed
  if @removed
    puts "event chain already removed"
    return
  end

  @removed = true
  @event_chain.remove_object(self)

  # We need to clear these to free memory
  @event_chain = nil
  @object = nil
  @callback = nil

  if RUBY_PLATFORM == 'opal' && CHAIN_DEBUG
    `window.chain_listeners -= 1;`
    `console.log('del chain listeners: ', window.chain_listeners)`
  end
end