RELEASE

Path: RELEASE
Last Update: Tue Dec 02 09:46:41 -0500 2008

Facets 2.5.0 is an important milestone in the development of Facets.

This release has been tested against Rails’ ActiveSupport library. As long as Facets is loaded after ActiveSupport, everything should work fine. Of course, there‘s no counting for real world trials, but all ActiveSupport testcases pass under this scenario.

Secondly, this release is the first of two (or three) down-scaling releases intended to remove all the remaining "excess" from the library. This is being done for a variety of reasons. Some scripts are substantial enough to be one their own and have been spun-off into separate largely compatible projects. In this release:

  If you were using...   Use this project instead...

    annotations.rb         Anise

    bytes.rb               RichUnits
    times.rb

    command.rb             Clio
    consoleutils.rb

A few others scripts have been deprecated, without an alternative recourse, simply because they were too weak, such as uploadutils.rb, or highly experimental, such as chain.rb and eventhook.rb.

Although this release constitutes an over all slimming down of Facets, two excellent new libraries have been added.

1) *ini.rb* by Jeena Paradies. While YAML is frequently used by Rubyists for configuration files, a full-on serializer like YAML is often overkill. INI files provide a lightweight solution specifically geared for configuration.

2) *filter.rb* by Brian Candler offers lazy evaluation chains of Enumerable methods. This is an elegant way to optimize contiguous maps, selections, etc. —effective even on infinite enumerators. (Note, the name of this library may be changed in the next release.)

While work remains to be done, I am happy to say, Facets is finally beginning to approach the level of solidity I set out to achieve just over a year ago. Thank the Maker!

Special thanks to Brian Candler, Jeena Paradies and Tyler Rick.

Enjoy!

### 2.5.0 / 2008-11-23

  • 9 Major Changes
      * added Brian Candler's Enumerator::Filter
      * added sparse_array.rb (was old harray.rb)
      * added Jeena Paradies' ini.rb
      * renamed CacheDelegator to Memoizer
      * renamed DictionaryMatcher to just Matcher
      * deprecated bytes.rb and times.rb (use RichUnits instead)
      * deprecated uploadutils.rb; ziputils.rb will be (use Folio)
      * deprecated annotations.rb (use Anise instead)
      * deprecated command.rb and consoleutils.rb (use Clio instead)
    
  • 5 Minor Changes
      * deprecated chain.rb (very expiremental)
      * deprecated eventhook.rb (moved to ToadCode project)
      * deprecated tagiter.rb (moved to ToadCode project)
      * moved Hash#symolize_keys and #stringify_keys to core lib
        (still recommend #rekey instead though)
      * switched to git as of 2.4.5
    
  • 4 Bug Fixes
      * memoize.rb, cache was at class-level, now at instance-level
      * binding/caller.rb, fixed require for callstack.rb
      * fixed missing require in string/tabto.rb
      * Fixed some bugs with Time#ago/Time#hence not changing years
        correctly when you changed months.
        (For example, Time.utc(2008, 1, 1).ago(12, :months) incorrectly
        returned 2009-01-01 instead of 2007-01-01.)
        Changed Time#ago/Time#hence to still work if passed negative number.
    

[Validate]