= RELEASE HISTORY == 2.0.0 / 2012-05-11 This is a big release for Hashery which both culls some of it's less fitting classes and modules while greatly improving the rest. The first and most immediate change is use of a proper namespace. All classes and modules are now appropriately kept in the `Hashery` namespace. To get the old behavior you can `include Hashery` as the toplevel. For the other changes and improvements dive into the API documentation. Changes: * Use proper Hashery namespace. * Add CRUDHash, which also serves a good base class. * Improved OpenHash to be nearly 100% open. * Deprecate BasicStruct, as it would be better to improve OpenStruct. * Deprecate BasicCascade, though it never really came to be. * Deprecate BasicObject emulator, as it is no longer needed. * Deprecate Memoizer, not sure how that got in here anyway. * Deprecate Ostructable, which can be paired up with better OpenStruct. * Removed open_object.rb, which has long been deprecated. == 1.5.1 / 2012-05-09 This release adds transformative #each method to OpenCascade, to ensure #each returns an OpenCascade. Also, BasicCascade has been added that is like OpenCascade by fully open by use of BasicObject as a base class. Changes: * Fix OpenCascade#each (porecreat). * Introduce BasicCascade class. * Renamed `Ini` class to `IniHash` class. == 1.5.0 / 2011-11-10 In this release, CoreExt module has been addeed to encapsulate methods that extend Ruby's core Hash class (there are only a few). Presently these are only loaded when using `require 'hashery'`. If you are cherry-picking from Hashery but still want the core extensions, you need to use `require 'hasery/core_ext'` first. In addition, BasicStruct class now has a #key method. And finally this release switches licensing to BSD 2-Clause. Changes: * Use CoreExt mixin for core Hash extensions. * Add BasicStruct#key method (b/c #index is deprecated in Ruby 1.9). * Deprecate SparseArray class. * Switch license to BSD-2-Clause license. == 1.4.0 / 2011-01-19 This release includes a copy of Ruby Facets' BasicObject class, which fixes the loading bug of the previous version. This release also renames OpenObject to BasicStruct, which is a much better destription of what the class actually provides. Changes: * Rename OpenObject to BasicStruct. * Fix basicobject.rb loading issue. == 1.3.0 / 2010-10-01 This release fixes a minor bug in CastingHash and adds a new PropertyHash class. Changes: * 1 New Library * Added PropertyHash * 1 Bug Fix * Fixed CastingHash#new where #to_proc is called against NilClass == 1.2.0 / 2010-06-04 This release makes two signifficant changes to the Hashery. First, we have a new shiny library called FuzzyHash by Joshua Hull. It's a cool idea that allows hash keys to be regular expressions. Secondly, OpenCascade is now a subclass of OpenHash rather than OpenObject (to go along with the changes of the last release), and it now support cascading within Arrays. Changes: * 1 New Library * FuzzyHash by Joshua Hull * 1 Major Enhancement * OpenCascade subclasses OpenHash and handles Array cascading. == 1.1.0 / 2010-04-28 A follow-up release of Hashery that adds two new libraries: Association and SparseArray. Both of these may seem like odd entries, but they each belong in a unique way. An Association is akin to a single entry Hash --it represents a pairing. While a SpareArray, though compatible with the Array class, is completely under-pinned by a Hash in order to make it effcient when no ebtries are given for a set of indexes, hence "sparse". Changes: * 2 New Libraries * Added association.rb * Added sparsearray.rb == 1.0.0 / 2010-04-21 This is the first release of the Facets Hashery. Most of included classes come directly from Ruby Facets, so they have been around a while and are in good working condition. Some improvements are planned for the next release. In particular the OrderHash and Dictionary, which presently have essentially the same coding, will diverge to target slightly different use cases. Changes: * Happy Birthday!