Facets 2.9 is fairly extensive as it was originally intended to be v3.0.
After further consideration it was decided to reserve v3.0 for something a
little bolder (to be announced). The primary goal of this release was to
trim Facets down to a true core extensions library. All tertiary add-on classes
and mixins have now been spun-off to other projects. Only a very select set of
general purposes classes and mixins remain.
Facets 2.8 effectively completes the MORE library clean-up which peaked
with the previous 2.7 release. In so doing, five additional libraries
have been deprecated:
- fileable.rb (too esoteric)
- ioredirect.rb (needs better implementation)
- coroutine.rb (because of Fiber)
- capsule.rb (may be spun-off)
- recorder.rb (may be spun-off)
Three other libraries have been deprecated, but have been spun-off
to the new 'ansi' project:
Facets 2.7 is most significant release of Facets since 2.4. Rather then trickle-release
these changes over the course of the 2.6.x series, I made the decision to let 2.7 have them
all at once. In so doing this release nearly completes the process of trimming down
the MORE library to its essentials. Over 40 high-level libraries have been spun-off
as separate gems and/or deprecated. No doubt this is a big change for Facets, and the
transition may be a bit bumpy over the short-term, but I am certain that in the long-run
everyone involved will be better served. To help, I have listed the effected libraries
and the alternate gems available to take their place.
The old Ruby Facets website was a static 100% XML/XSLT site. When I originally created
the site, I though XML/XSLT suredly was the pinnicale and proper way to build a
modern site --for no other reason that XSL is a pain in the ass! Well, we all know
the ultimate outcome of this story. XML/XSLT is turning out to be an exmplar of
over engineering by academics.
The new Facets website runs of Jekyll, a static site generator supoprted by GitHub.
(another good site tool is Shunman)
Facets 2.4.3 is now out in the wild. The release is primarily a maintenance
release —fixing a handful of small bugs and adding some small feature
improvements, but a few significant changes are also present.
- Moved Mentalguy's lazy.rb to CORE!
- Moved Indexable and Stackable to core.
- Added Time#trunc and Time#round to CORE.
- Added Ken Bloom's DictionaryMatcher class (maybe renamed in future version)
- Added Array#recursively and fixed bug in Hash#recursively.
- Added kernel/instance method which provides a fluent interface to private object space.
- Renamed Class#to_pathname and #to_methodname to #pathize and #methodize.
- Changed File#rewrite to not use the in-place change of the string.
- Changed Dictionary#first and #last to take optional arguments.
- Deprecated Hash#keys_to_s and Hash#keys_to_sym (use #rekey).
- Deprecated Console:: namespace for ANSICode.
- Deprecated ruby.rb, which was a sort 1.9 compatibility layer.
- The ruby.rb methods were moved to core, wrapped in a 1.9 condition.
- Fixed Time#hence changed years when changing months.
- Fixed Time#hence to flip year correctly when adding months.
- Improved File#rootname, it is now more robust.
- Made FileUtils#whereis a module_function again.
- Use "lib/lore" to separate extensions to Ruby's standard library.
Note that this release does not include a setup.rb script. We are working
on a new version of this script, which we plan to include in the next
As programmers are wont to do, I started collecting reusable pieces of
Ruby long ago. At first it was just a small function here, a useful
module there. Eventually the collection became sizable and I called it TomsLib.
As time wore on and my library grew, I started to feel it worth a general
release and I had renamed it Raspberry Lib. But sometime shortly thereafter
I hit upon the idea of atomicity of the core extensions. And that's how the
name Facets came about --it's all about the little things. Of course, that name
took a while to decide upon too. The library was almost called "Atomix & Trix"!