
The 1.4 series of Facets is now official!

There are have been quite a few improvements since the last offical release. The single biggest change is actually completely behind the scenes. Darcs is now being usd as the revision control system. Darcs really is a dream to use and should make it easier for others to contribute to the project. (I only wish Rubyforge and Tracs would gear up their Darcs support.)

Here are the other major highlights of 1.4 series:

* Added nilclass/status which allows a message to be passed through a failure chain.

* Added enumerable/cascade, a cascade a list of actions on each element of an enumerable. Thanks to Sean O'Halpin for this.

* Removed hash/keys_to_iv because it is a poor name. Since the alternative of 'keys_to_instance_variables' conveys the wrong idea, we simply deprecated it in favor of the Rails compatible #variablize_keys.

* Fixed bug in BasicObject#__self__.

* Addedd Cookie, HTTP and HTTPAccess of Hiroshi Nakamura's httpaccess2.rb library. Cookie has been moved to Web namespace.

* OpenObject's __get__ and __set__ methods have been changed to __fetch__ and __store__ to correspond to the Hash methods.

* Added OpenCascade, which is like OpenObject but chains access.

* Included MenTaLguY's lazy.rb which include's Future and Promise classes. Cool lib!

* Created task.rb, which provides a Rake interface compatible task system, but that can be used in any code. Instead of defining tasks globally it defines them as methods of the current module or class. This makes the "task pattern" reusable.

* Improved Hash#traverse (it now does all traversing before yielding).

* kernel/me, kernel/methodname and kernel/method_name have all been deprecated in favor of 1.9's kernel/__method__ and kernel/__callee__ (but why more __ methods if you don't like them, matz?)

* Console::Application is deprecated as an alias for Console::Command.

* Console::Command now supports run-on flags (eg. -xvzf).

* More's classinherit.rb has been removed, and classmethods.rb will eventaully be deprecated as well. You should transition all uses of these to the core method module/class_extension.

* Updated tuple.rb so that when a string is converted to a Tuple (#to_t) the values wll be made integers if they are composed of only numbers. If you need all strings you can use a block since the block bypasses auto coerce, eg. to_t{ |v| v }.

* If anyone missed the changes from 1.3 the main of them were the inclusion of xoxo.rb, json.rb and rtals.rb; the moving of the cattr methods from module/ to class/. The mattr methods are still being reconsidered (They were aliases for cattr.); and adding zimba.tm's string/modulize, pathize and methodize methods.

I see the gleen in your eye ;) Enjoy!

