Facets is the premier collection of extension methods for the Ruby programming language. Facets extensions are unique by virtue of thier atomicity. They are stored in individual files allowing for highly granular control of requirements. In addition, Facets includes a few additional classes and mixins suitable to wide variety of applications.
Happy New Year! Ruby Facets kicks off the year with a 2.9.x release. This release adds a number of new methods, a few general improvements and bug fixes, a couple of deprecations and finally settles the project down to a two-part core/standard project organization.
* New Features
* Add Hash#url_params. (Matt Kirk)
* Add Enumerable#hashify. (Ronen Barzel)
* Add String#briefcase, similar to #titlecase.
* Add Kernel#hierarchical_send (better replacement for preinitialize.rb).
* Add Class#hierarchically, which supports #hierarchical_send.
* Add Array#median, to get the sorted middle of an array.
* Add Math#percentile and Math#median.
* Add Instantiable mixin (returns from Mixers spin-off project).
* Add Equitable mixin (returns from Mixers spin-off project).
* Add Cloneable mixin (returns from Mixers spin-off project).
* Add Array#each_pair and #each_value.
* Add Numeric#positive? and #numeric?.
* Add Method#* and #^ composition methods. (Mike Burns)
* Add back Fixnum::MAX and MIN constants.
* Add Binding#with.
* Improved Features
* Improve FileUtils#amass to be more robust.
* Improve String#snakecase to convert spaces to underscores.
* Improve String#camelcase to convert spaces to "camels".
* Improve String#snakecase to not handle path names (use #pathize).
* Improve String#camelcase to not handle module names (ise #modulize).
* Improve Numeric#approx? bu using ratio.
* Renamed Features
* Rename Enumerable#has? to #incase?.
* Bug Fixes
* Fix Hash#rekey to keep default_proc.
* Fix Binding#self to not be defined for Rubinius.
* Reconsolidated library into just two parts, `core` and `standard`.
* The term "more" is just a synonym for "standard" now.
* Relative requires are being used more extensively.
* Collection scripts, e.g. `require 'facets'`, are static.