Fresh Facets

Keep up with the latest news.

Facets 2.9 Release


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 Release


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:

  • ansicode.rb
  • progressbar.rb
  • logger.rb

Facets 2.7 is a Significant Release


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.

New Website with Jekyll


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


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 release.

How Facets Was Born


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"!