4chan-x/src/General/lib/callbacks.class
2014-01-11 12:51:14 -07:00

24 lines
652 B
Plaintext

class Callbacks
constructor: (@type) ->
@keys = []
push: ({name, cb}) ->
@connect name if @[name]
@keys.push name unless @[name]
@[name] = cb
connect: (name) -> delete @[name].disconnected if @[name].disconnected
disconnect: (name) -> @[name].disconnected = true if @[name]
execute: (node) ->
for name in @keys
try
@[name].call node unless @[name].disconnected
catch err
errors = [] unless errors
errors.push
message: ['"', name, '" crashed on node ', @type, ' No.', node.ID, ' (', node.board, ').'].join('')
error: err
Main.handleErrors errors if errors