Facets 1.4

A N N O U N C I N G

                        Facets 1.4

             ALL YOUR BASE ARE BELONG TO RUBY!

= ABSTRACT

Facets is a large collection of core extension methods and module
additions for the Ruby programming language. The core extensions are
unique by virtue of thier atomicity. Methods are stored in their own
files, allowing for highly granular control of requirements. The
modules include a variety of useful classes, mixins and
microframeworks, from the Functor to a full-blown SI units system.

= LATEST NEWS

The 1.4 series of Facets is now official as of v1.4.5.

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 N.'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 :wink: Enjoy!

= RELATED LINKS

http://facets.rubyforge.org

                       Generated by
                    ___
                   | _ \___ __ _ _ __
                   |   ) -_) _` | '_ \
                   |_|_\___\__,_| .__)
                                |_|

               The Ruby Project Assistant

         Do you Ruby? (http://www.ruby-lang.org)