diff --git a/src/stdlib/subscriber.coffee b/src/stdlib/subscriber.coffee index 5975451a5..e1ad6f4a2 100644 --- a/src/stdlib/subscriber.coffee +++ b/src/stdlib/subscriber.coffee @@ -1,23 +1,24 @@ _ = require 'underscore' module.exports = - subscribe: (eventEmitter, subscribeArgs...) -> - eventEmitter.on(subscribeArgs...) + subscribeWith: (eventEmitter, methodName, args) -> + eventEmitter[methodName](args...) @subscriptions ?= [] @subscriptionsByObject ?= new WeakMap @subscriptionsByObject.set(eventEmitter, []) unless @subscriptionsByObject.has(eventEmitter) - eventName = _.first(subscribeArgs) - callback = _.last(subscribeArgs) + eventName = _.first(args) + callback = _.last(args) subscription = cancel: -> eventEmitter.off eventName, callback @subscriptions.push(subscription) @subscriptionsByObject.get(eventEmitter).push(subscription) - subscribeToCommand: (view, eventName, callback) -> - view.command eventName, callback - @subscriptions ?= [] - @subscriptions.push(cancel: -> view.off eventName, callback) + subscribe: (eventEmitter, args...) -> + @subscribeWith(eventEmitter, 'on', args) + + subscribeToCommand: (eventEmitter, args...) -> + @subscribeWith(eventEmitter, 'command', args) unsubscribe: (object) -> if object?