SSL fixed! Again. Yeah, so by "fixed", I probably mean to say, "I am a moron and some new bug will surely pop up again soon."
If you use SSL regularly, let me know how THIS fix goes....
(On the plus side, this time I tested it a little)
This is primarily a bugfix release, but it's been so long since 1.5 that people will think I've done a ton of work if I call it 1.6. Plus there's one minor new feature that doesn't suck.
:unlessto be specified for filters
Deprecating prepend_handler in favor of before_filter, set_callback, and after_filter. prepend_handler and current event system stay in for a while, but won't last forever....
Related to above: callback and filters must very explicitly break the chain, and it should only be done in very specific situations.
Callbacks should be looked at as the core code, the response to an action. They should be used to actually handle an event: a bot's "PRIVMSG #channel Hey there, bob" output on a "bob joins the channel" message. Filters are more for behind-the-scenes stuff: responding to a PING, storing stats, logging, manipulating input/output, changing variables (bot's nickname on an :incoming_nick event), etc.
A plugin could use a filter where one isn't really appropriate, and this may make sense for a plugin built for a very specific purpose - but the final program should be the only thing that registers the callback, because there can be only one. When you call set_callback, any previous callback is lost, PERIOD.
Looking at this like Rails, the callback would be the action, while filters would be... filters. Looking at it like wordpress, the callback is the core WP code, while the filters are your plugin actions. One plugin author shouldn't be breaking another's ability to work. Again, exceptions to every rule: for instance, an "ignore user" plugin could stop an event from ever reaching the callback.
Though I got it working fairly well, the legacy support isn't 100% compatible with 1.4.3:
Anything not well-documented, confusing, or done wrong? Yell at me on github and maybe I'll fix it.
The from data is always present on all events, even if it has to be blank, in order to accommodate the edge cases where having data is expected, but it isn't there: NOTICE :ERROR from foo.bar.com
Pulled fix for RFC 1459 compliance - newline should be CR-LF.
SSL support has been enhanced by code I don't fully understand, but which a helpful user suggested could fix the one-message-behind situation!
irc.log.level = ...
Had some screwups here before deploying the gem, so this version was removed
start_listeningmethod of Net::YAIL, you can now call the "dangerous" version of that method:
start_listening!, which wraps the "safe" version, but also starts an endless loop. For extremely simple bots, this is simplifies your codebase greatly.
Go to github, look at the incredibly long and painful old version of CHANGELOG. Weep. Hate Nerdmaster for being such a moron.