Skip to content

Instantly share code, notes, and snippets.

@derhuerst
Forked from yocontra/EventEmitter.coffee
Last active October 26, 2017 06:36
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derhuerst/5433f5ee3342a1de6d81 to your computer and use it in GitHub Desktop.
Save derhuerst/5433f5ee3342a1de6d81 to your computer and use it in GitHub Desktop.
A minimalistic CoffeeScript event emitter.
# A minimalistic CoffeeScript event emitter.
# Jannis R <mail@jannisr.de>
# https://gist.github.com/derhuerst/5433f5ee3342a1de6d81
class EventEmitter
constructor: ->
@_events = {}
emit: (event, args...) ->
handler args... for handler in @_events[event]
return this
on: (event, handler) ->
@_events[event] ?= []
@_events[event].push handler
return this
off: (event, handler) ->
@_events[event].splice @_events[event].indexOf(handler), 1
return this
once: (event, handler) ->
fn = =>
@off event, fn
handler arguments...
@on event, fn
return this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment