Hello--

I'm pleased to finally announce the next major release of Facets
--the Halloween release (2005-10-30). Baring any signifficant issues
arsing in Novemeber, this release will be stamped "Stable" on the first
of December.

If you'll recall, last release was a brief flirt with new names Nano Methods
and Mega Modules. With this release we've decided to go back to the original
name Facets, deeming in the interm that it is a better course, and to which
it will stay for good. Namespace compatability is being maintained with this
release, so all the following will work as expected:

  require 'facet/...'
  require 'nano/...'
  require 'mega/...'

This release also begins a transition to a more robust require mechanism. You should require the main facitlity before utilizing the rest of Facets with:

  require 'facets'

This loads all base methods (about a two dozen very basic methods) and the Facets module. Then where one would have used the Kernel#require like so:

  require 'facet/time/stamp'    # TOO BE DEPRECATED !!!

You should begin transitioning to:

  Time.use Facets, :stamp

Using this method allows Facets to work more perceisely and efficiently. For instance one of the clear advantages of this method is that Facets can search the class hierarchy for a method. For example if you wanted to use #each_permutation on an Array.

  Array.use Facets, :each_permutation

Even though #each_permutation is an Enumerable method this will still work. It also allows for the use operators without special recourse. For instance, the Proc composition operator can be require simply.

  Proc.use Facets, :*

The reason the Facets module is specified is because #use is a generalized method. Anyone can easily take advantage of this functionality by utilizing Facets Module Code Package system (package.rb). See the API Documentation for further details of putting this to use in your programs.

All in all, there's plently of new stuff in here and a good bit of code clean-up. Some of the most notable additions include:

  annotation.rb   An advance annotations system George Moschovitis
                  and I developed.

  units.rb        An extensive SI Units system by Peter Vanbreokhoven.

  class_inherit   THE way to have modules include class methods
                  when inherited. This takes the next step beyond
                  ClassMethods.

  inheritor.rb    A neat and useful way to inherit data through the
                  class heirarchy.

For the rest please see the CHANGELOG and the API Docs.

*** Extra special thanks to Peter and George! ***

Enjoy, 
  trans.
