T
Trans
A N N O U N C I N G
Ruby Facets, v 2005-10-30
The Proverbial Zoo-of-More for Ruby
ABSTRACT: Ruby Facets is a cornicopia of extension methods and
module/class
additions for the Ruby programming language. The extensions, known as
the
the Atomic Library, is unique by virtue of thier atomicity. Methods are
stored in their own files, allowing for highly granular control of
requirements. In addition Facets includes a large selection of useful
classes, modules and microframeworks (once known as Calibre Classes).
For More Information
http://facets.rubyforge.org
ALL YOUR BASE ARE BELONG TO RUBY!
------------------------------------------------------------------------
(from ANN)
I'm pleased to finally announce the next major release of Facets
--the Halloween release (2005-10-30). Baring any signifficant
issues arising in Novemeber, this release will be stamped "Stable"
on the first of December.
If you'll recall, our 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, having deemed it in the interm
to be the 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 you would have used the
Kernel#require method like so:
require 'facet/time/stamp' # to be deprecated
You should instead 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
And 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 required
simply:
Proc.use Facets, :*
The reason the Facets module is specified is because #use is a general
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 Website, CHANGELOG and the API Docs.
*** Extra special thanks to Peter and George! ***
Thanks,
trans.
Ruby Facets, v 2005-10-30
The Proverbial Zoo-of-More for Ruby
ABSTRACT: Ruby Facets is a cornicopia of extension methods and
module/class
additions for the Ruby programming language. The extensions, known as
the
the Atomic Library, is unique by virtue of thier atomicity. Methods are
stored in their own files, allowing for highly granular control of
requirements. In addition Facets includes a large selection of useful
classes, modules and microframeworks (once known as Calibre Classes).
For More Information
http://facets.rubyforge.org
ALL YOUR BASE ARE BELONG TO RUBY!
------------------------------------------------------------------------
(from ANN)
I'm pleased to finally announce the next major release of Facets
--the Halloween release (2005-10-30). Baring any signifficant
issues arising in Novemeber, this release will be stamped "Stable"
on the first of December.
If you'll recall, our 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, having deemed it in the interm
to be the 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 you would have used the
Kernel#require method like so:
require 'facet/time/stamp' # to be deprecated
You should instead 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
And 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 required
simply:
Proc.use Facets, :*
The reason the Facets module is specified is because #use is a general
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 Website, CHANGELOG and the API Docs.
*** Extra special thanks to Peter and George! ***
Thanks,
trans.