Commit Graph

14 Commits (aab86a47cd1e46e9930b8a80e4ed26abad660aa0)

Author SHA1 Message Date
Mike Gerwitz aab86a47cd Initial Eventable conformance test case (#on/#addListener)
These conformance test cases will be an excellent disciplinary tool,
ensuring that any implementation of Eventable conforms strictly to its
specification; this will provide developers guarantees that the
implementation will work as expected polymorphically.
2014-08-10 18:02:50 -04:00
Mike Gerwitz a2deba59ad Evented#on to throw {Error=>ReferenceError} on undefined event id 2014-08-10 14:20:41 -04:00
Mike Gerwitz 914e4eed78 Added Evented#unhookEvent for logic overide 2014-08-10 14:20:41 -04:00
Mike Gerwitz a5ac05b73d Evented Node.js EventEmitter compatibility guarantees 2014-08-10 14:20:41 -04:00
Mike Gerwitz c8bddfbaeb Eventable and Evented no longer include #hooksEvent
This is introspection, which can be provided elsewhere or by specific
implementations. Together with the documented requirement (in Eventable#on)
that listeners must be notified of automatic un-hooking, and that systems
handling listeners will always be aware of when listeners are
hooked/unhooked, this method should not be necessary.

Including this method in Eventable also introduces incompatibility with
Node.js' Event API, which is undesirable.
2014-08-10 14:20:41 -04:00
Mike Gerwitz 7fa2a296d2 Eventable interface with extensive specification 2014-08-10 14:20:41 -04:00
Mike Gerwitz e55288c989 Evented listener metadata now distinct per instance 2014-08-10 14:20:41 -04:00
Mike Gerwitz eeea892967 Exposed Evented#_hooksEvent as public #hooksEvent 2014-08-10 14:20:41 -04:00
Mike Gerwitz 66e3d5b1ef Prohibited duplicate listeners of the same event 2014-08-10 14:20:41 -04:00
Mike Gerwitz 875c43cee4 Added Evented#addListener as #on alias
Consistent with Node.js' event API
2014-08-10 14:20:41 -04:00
Mike Gerwitz 74ccbff716 Consistent terminology in Evented docblocks and tests 2014-08-10 14:20:41 -04:00
Mike Gerwitz 981d8b923a Evented#removeListener
As a conscious TODO: need to properly handle attaching the same event
listener multiple times (define its behavior), and maybe even provide an API
to configure that behavior in some way.
2014-08-10 14:20:41 -04:00
Mike Gerwitz 7baff379ce Using ES6 features through Traceur to cut down on verbosity
It will take some getting used to (and it's a little sad to see some of the
long-standing conventions of ECMAScript vanish before my eyes), but it's
great thus far.
2014-08-10 14:20:39 -04:00
Mike Gerwitz 2942f153db Evented trait with basic functionality
This provides the core of the trait, with support for event definitions and
hooks.
2014-08-10 14:20:09 -04:00