
DRUM ROLL PLEASE. I'm happy to announce two new sister projects: 
Nano Methods and Mega Modules. They are born from the heritage of the
old Ruby Facets project (now deprecated). In the course of the last 
several months a slew of major improvements have been made. We have some
spiffy new websites and, most importantly, this release marks the 
beginning of a clear window toward 1.0 status.

GREAT NEWS! Nano Methods and Mega Modules are now the official
support libraries for Nitro and Og (http://www.nitrohq.com).
Nitro is a sophisticated Web Application Engine and Og is an
intuitive yet powerful Object Relational Mapping Library.

WHY MEGA? You may have noticed that I back peddled on the major change to
Facets 0.7.0. In that release I had merged the class and module additions
library, Ruby Carats, into Facets. But I had to separate them out again. It 
simply proved too cumbersome to have such a variety of content all in one
location. I am very excited the re-separation though. It has already lent 
itself to major improvements to the library, with a number of exciting 
additions on the way.

NANO SYSTEM. Another new feature is the introduction of the NanoSystem
module. This module provides access to meta-info about Nano's extensions.
Primarily it is an index of all the methods. With this information at its
disposal another unique way to require method becomes possible:

  require 'nanosys'

  String.use :capitalized?, :underscore

I am not recommending this approach at the moment. But in the long run,
as the NanoSystem module matures, it may well prove to be a much more
elegant means of extension loading.

FOR FACETS USERS. To upgrade, the project name change will require
you to change the #require path-space from 'facet/' to 'nano/', or 
occasionally 'mega/'. The division is pretty clear, Nano stores methods
and Mega stores classes and modules. Sorry for the inconvenience, but 
after a long debate I decided it was worth it --and better to do so now
rather then later. Hope you like the new names.

CORNUCOPIA. Finally, there are also _a lot_ of minor changes in this release.
Some of them are simply improvements in the naming of methods or more appropriate 
class/module placement. I've gone over all the methods enough now to be
confident that the present methods are pretty well set. You can expect many fewer
name/location changes from here on out. Also, a good number of new methods have
been added. Most of these I have managed to make mention of in the following
ChangeLog summary.

* Class methods are not prefixed with '::' to separate them from instance methods.

* Added logger #format and #format_message (whomever wrote these please let me know,
I got them thru a second-hand source and the original author is lost to me. I try
very hard to credit where credit is due.)

* Renamed object/supers to object/superup. Better!

* Got rid of symbol/gen. Use object/generate_method_name or 
module#generate_instance_method_name instead. [ed- Is that the longest
non-foo method name ever?]

* The file 1st.rb file has moved to object/method!. This provides a version
of #method that persists the returned Method object.

* Added module/clone_using, module/clone_renaming and module/clone_removing.

* Added module/integrate (I love this one, but note that its syntax is not yet
set in stone.)

* Added many new enumerable methods: #filter_map, #compact_map, #commonality,
#frequency, #probability and #find_collisions.

* Moved some methods from array to enumerable: #each_permutation,
#each_combination, #each_unique_pair and the class method ::combinations.

* Added string/bytes per ruby-dev summary 26385-26467.

* Moved #cattr_reader, #cattr_writer and #cattr_accessor from Class to Module.
These are the class variable attributes as defined by Rails DHH.

* Added class instance attribute methods: iattr_reader, iatter_writer, &c.
The name of these are not set in stone. It's a bad misnomer. Looking
for suggestions.

* Added methods to comparable: #cap, #clip. #clip replaces #bound_by, since
'by' generally indicates the method takes a block parameter. I have retained
#at_least and #at_most, although #cap and #clip handle the same functionality.

* Added class/descendants (alias subclasses) and class/remove_descendants.

* Removed string/table_name and string/class_name (were too Rails specific).
Note: A new module has been added to Mega Modules, called orm_inflect.rb. 
It contains numerous methods for doing this sort of thing.

* Added numeric/ceil_multiple.

* Added string/soundex for calculating the soundex code of a word/name.

* numeric/octet_units has bee moved to mega/binary_multipliers, which
is a rewrite of Richard Kilmer's bytes.rb. Actually #octet_units is
now just an alias or #strfbytes, accompanied by #strfbits.

* Placed Florian's binding-of-caller.rb in binding/of_caller. Makes more
sense there.

* Fixed Continuation::create; it wasn't defined as a class method
and should have been.

* Fixed bug with string/capitalized? which wasn't always giving the correct
result.

There are a number of others, but this particular session of development was
so rapid and choked full, I wasn't able to log them all. 
Please see the API RDocs for a complete listing.

CONTRIBUTE. As always, if you have any extension methods that you use and think
may be of benefit to others, please submit them. There's a good chance they'll be
incorporated. Also, if you happen to notice any code that is mis-credited or is
not credited at all and should be, please correct me. Giving credit where credit 
is due is _vry_ important to me, unfortuantely in the juggle of things it doesn't
always get doen as wellas it should. And, of course, please let me know if you
come across any bugs.

You can contact me either privately or via ruby-talk.

Thanks and Enjoy,
trans|onoma
