Module: Vis::EventSupport

Included in:
DataSet, DataView
Defined in:
lib/vis/event_support.rb

Instance Method Summary collapse

Instance Method Details

#off(event, event_handler_id) ⇒ Object



3
4
5
6
7
8
# File 'lib/vis/event_support.rb', line 3

def off(event, event_handler_id)
  event = lower_camelize(event)
  handler = @event_handlers[event][event_handler_id]
  `self["native"].off(event, handler)`
  @event_handlers[event].delete(event_handler_id)
end

#on(event, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/vis/event_support.rb', line 10

def on(event, &block)
  event = lower_camelize(event)
  @event_handlers[event] = {} unless @event_handlers[event]
  event_handler_id = `Math.random().toString(36).substring(6)`
  handler = %x{
    function(event_str, properties, sender_id) {
      #{block.call(`event_str`, `Opal.Hash.$new(properties)`, `sender_id`)};
    }
  }
  @event_handlers[event][event_handler_id] = handler
  `self["native"].on(event, handler);`
  event_handler_id
end