Among Ruby Facets most common additions were an assortment of Hash-like classes. To better support this collection of libraries it was deemed prudent to create a new project specifically for them. Hence the Facets Hashery.
Included in this collection are the widely used OrderedHash, the related but more featured Dictionary class, a number of open classes similar to the standard OpenStruct, some variations of the standard Hash class and a few other yummy morsels.
For instruction on usage, please see the individual library files included in this collection and read the demo documents which give examples of almost all features.
Hashery adds four core extensions of Ruby's Hash class:
Hash.create. The first is simply an alias
#. The later two have proven too useful over the years to
omit. And the last is a convenience class method for populating
a new hash with another hash upon initialization. All of these are
sorely missing for Ruby itself, which is why they are provided here.
To install with RubyGems simply open a console and type:
$ sudo gem install hashery
Tarball packages are available for manual site installations via Ruby Setup.
Developers who have contributed code to the project include:
- Kirk Haines
- Joshua Hull
- Robert Klemme
- Jan Molic
- George Moschovitis
- Jeena Paradies
- Erik Veenstra
Don't be a lump on a log. See an issue? Have a suggestion? Want to help? Well git in there!
$ qed -Ilib demo/
Lemon is used to create low-level unit tests. Run these via the RubyTest universal test harness.
$ rubytest -Ilib test/
Hashery's repository is hosted on GitHub. If you'd like to offer up a fix or feature, fork the repo and submit a pull request (preferably in a topic branch). I assume you have heard all the talk about proper practices, so I won't bug you with it yet again.
Yes, we FOSS programmers need to eat too! ;-) No seriously, any help you can offer goes a long way toward continued development of Rubyworks projects, including Hashery. See the upper right-hand corner on the Rubyworks homepage. Thanks.
Copyright (c) 2010 Rubyworks
Licensed under the BSD-2-Clause license.
See COPYING.md file for further details.
Some libraries included in the Hashery have special copyrights attributing specific authors. Please see each library script for specifics and the NOTICE.txt file for an overview.