Skip to content

Instantly share code, notes, and snippets.

@rikukissa
Last active December 16, 2015 08:48
Show Gist options
  • Save rikukissa/5408056 to your computer and use it in GitHub Desktop.
Save rikukissa/5408056 to your computer and use it in GitHub Desktop.
on & trigger methods for classes
class EventEmitter
constructor: ->
@events = {}
trigger: (keys, args...) ->
for key in keys.split(' ')
if @events[key]?
func.apply @, args for func in @events[key]
@
on: (keys, func) ->
for key in keys.split(' ')
@events[key] = [] if not @events[key]
@events[key].push func
@
# Example class
class User extends EventEmitter
constructor: ->
super
@id = Date.now()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment