Beam-Emitter
view release on metacpan or search on metacpan
Changelog for Beam-Emitter
1.007 2017-01-29 01:43:15-06:00 America/Chicago
[Fixed]
- Passing in an overridden emitter when emitting an event no longer
uses the emitter's boolean overload. This could cause the wrong
emitter to be used in the event. Thanks @djerius (Github #25)
1.006 2016-11-23 22:35:48-06:00 America/Chicago
[Added]
- Added a couple more cookbook entries to show Beam::Emitter
patterns
[Fixed]
- Events with no listeners now correctly return the Event object
like they used to. This was a regression starting in v1.004.
Thanks @eserte and CPAN Testers for the report (Github #24)
1.005 2016-11-22 12:56:41-06:00 America/Chicago
[Fixed]
- Custom listener classes are now loaded automatically. This
prevents a very strange error about the unloaded class not
inheriting from Beam::Listener, even though it does. Perl doesn't
know that it does, because the class isn't loaded, and there's no
good way to detect if a class is loaded or if it failed to load.
So, to make it easier, Beam::Emitter now simply loads the class
for you. Thanks @djerius (Github #23)
1.004 2016-11-17 17:28:01-06:00 America/Chicago
[Added]
- Allow the event's name to be overridden when emitting the event.
This is a rare thing to want, but it makes some future cookbook
items (like a catch-all '*' event) more useful.
- Allow the event's emitter object to be overridden when emitting
the event. This, too, is a rare thing to want, but it allows an
object to more easily proxy the event emitter if needed. Thanks
@djerius! (Github #19)
- Added a Cookbook document (Beam::Emitter::Cookbook) to start
demonstrating some useful patterns that aren't quite useful or
generally-desired enough to be part of the main distribution
always. Thanks @yanick for the help! (Github #12)
- Enhanced how Beam::Emitter tracks listeners by creating
Beam::Listener objects with the option of adding additional
metadata to the listener by extending the Beam::Listener class.
Thanks @djerius! (Github #16)
- Added a method (`listeners()`) to list the current listeners
(Beam::Listener objects) for an event. Thanks @djerius! (Github
#16)
[Fixed]
- The Beam::Emitter role no longer pollutes the consumer's namespace
with things from Types::Standard, Scalar::Util, and Carp. Thanks
@kentnl! (Github #13)
This could result in problems if you accidentally depended on this
behavior. To fix these problems, please import the correct subs
explicitly.
- The Beam::Emitter role now allows composing classes to use method
modifiers for the `subscribe` and `unsubscribe` methods.
Previously, if the composing class overrode either of those
methods, those changes would be ignored by the `on` and `un`
aliases. Now, the `on` and `un` aliases use proper method
resolution. This means that if you want to modify behaviors of
your class on subscribe and unsubscribe, you must only modify the
`subscribe` and `unsubscribe` methods. (Github #18)
1.003 2016-11-11 21:35:53-06:00 America/Chicago
[Fixed]
- Fix the unsubscribe callback (returned from the `subscribe`
method) throwing an exception if the emitter object has already
been destroyed. Since the unsubscribe callback has a weak
reference to the emitter object, we have to make sure the
reference still exists before using it to unsubscribe. Thanks
@djerius! (Github #14)
- Fix unsubscribing from an event during an event not firing all the
rest of the events properly. When using the unsubscribe callback
to create a one-time event handler, the emitter could miss the
next event listener (since we were looping over the listeners
array and modifying it in the loop). Now we loop over a copy of
the listeners array so that the original can be modified to remove
the listener we want. Thanks @djerius! (Github #15)
1.002 2016-09-02 18:58:23-05:00 America/Chicago
- Update distribution settings
1.001 2016-07-19T16:51:49
- use a better meta-syntactic variable
- fix circular references in unsubscribe callback
- return subref that removes the current subscriber
- upgrade perl in travis config
( run in 0.641 second using v1.01-cache-2.11-cpan-6aa56a78535 )