Method: Vis::DataCommon#on

Defined in:
lib/vis/data_common.rb

#on(event, &block) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/vis/data_common.rb', line 32

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, properties, sender_id) {
      return block.$call(Opal.Hash.$new(event),Opal.Hash.$new(properties), sender_id);
    }
  }
  @event_handlers[event][event_handler_id] = handler
  `self["native"].on(event, handler);`
  event_handler_id
end