All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning 2.0.0. Any violations of this scheme are considered to be bugs.
- Nothing yet.
- Nothing yet.
- Nothing yet.
- #240: Fixed nesting twice with Clash keys - @bartoszkopinski.
- #317: Ensure
Hashie::Extensions::MethodQuery
methods return boolean values - @michaelherold. - #319: Fix a regression from 3.4.1 where
Hashie::Extensions::DeepFind
is no longer indifference-aware - @michaelherold. - #322: Fixed
reverse_merge
issue withMash
subclasses - @marshall-lee. - #346: Fixed
merge
breaking indifferent access - @docwhat, @michaelherold. - #350: Fixed from string translations used with
IgnoreUndeclared
- @marshall-lee.
- Nothing yet.
- Nothing yet.
3.4.3 - 2015-10-25
- #306: Added
Hashie::Extensions::Dash::Coercion
- @marshall-lee. - #314: Added a
StrictKeyAccess
extension that will raise an error whenever a key is accessed that does not exist in the hash - @pboling.
- #304: Ensured compatibility of
Hash
extensions with singleton objects - @regexident. - #310: Fixed
Hashie::Extensions::SafeAssignment
bug with private methods - @marshall-lee.
- #313: Restrict pending spec to only Ruby versions 2.2.0-2.2.2 - @pboling.
- #315: Default
bin/
scripts:console
andsetup
- @pboling.
3.4.2 - 2015-06-02
- #297: Extracted
Trash
's behavior into a newDash::PropertyTranslation
extension - @michaelherold.
- #292: Removed
Mash#id
andMash#type
- @jrochkind.
3.4.1 - 2015-03-31
- #269: Added Hashie::Extensions::DeepLocate - @msievers.
- #281: Added #reverse_merge to Mash to override ActiveSupport's version - @mgold.
- #270: Fixed ArgumentError raised when using IndifferentAccess and HashWithIndifferentAccess - @gardenofwine.
- #282: Fixed coercions in a subclass accumulating in the superclass - @maxlinc, @martinstreicher.
3.4.0 - 2015-02-02
- #251: Added block support to indifferent access #fetch - @jgraichen.
- #252: Added support for conditionally required Hashie::Dash attributes - @ccashwell.
- #254: Added public utility methods for stringify and symbolize keys - @maxlinc.
- #260: Added block support to Extensions::DeepMerge - @galathius.
- #271: Added ability to define defaults based on current hash - @gregory.
- #249: SafeAssignment will now also protect hash-style assignments - @jrochkind.
- #264: Methods such as abc? return true/false with Hashie::Extensions::MethodReader - @Zloy.
- #247: Fixed #stringify_keys and #symbolize_keys collision with ActiveSupport - @bartoszkopinski.
- #256: Inherit key coercions - @Erol.
- #259: Fixed handling of default proc values in Mash - @Erol.
- #261: Fixed bug where Dash.property modifies argument object - @d-tw.
- #269: Add #extractable_options? so ActiveSupport Array#extract_options! can extract it - @ridiculous.
3.3.2 - 2014-11-26
- #231: Added support for coercion on class type that inherit from Hash - @gregory.
- #233: Custom error messages for required properties in Hashie::Dash subclasses - @joss.
- #245: Added Hashie::Extensions::MethodAccessWithOverride to autoloads - @Fritzinger.
- #221: Reduce amount of allocated objects on calls with suffixes in Hashie::Mash - @kubum.
- #224: Merging Hashie::Mash now correctly only calls the block on duplicate values - @amysutedja.
- #228: Made Hashie::Extensions::Parsers::YamlErbParser pass template filename to ERB - @jperville.
3.3.1 - 2014-08-26
- #183: Added Mash#load with YAML file support - @gregory.
- #189: Added Rash#fetch - @medcat.
- #204: Added Hashie::Extensions::MethodOverridingWriter and MethodAccessWithOverride - @michaelherold.
- #205: Added Hashie::Extensions::Mash::SafeAssignment - @michaelherold.
- #209: Added Hashie::Extensions::DeepFind - @michaelherold.
- #69: Fixed regression in assigning multiple properties in Hashie::Trash - @michaelherold, @einzige, @dblock.
- #195: Ensure that the same object is returned after injecting IndifferentAccess - @michaelherold.
- #201: Hashie::Trash transforms can be inherited - @fobocaster.
- #200: Improved coercion: primitives and error handling - @maxlinc.
- #206: Fixed stack overflow from repetitively including coercion in subclasses - @michaelherold.
- #207: Fixed inheritance of transformations in Trash - @fobocaster.
3.2.0 - 2014-07-10
- #179: Mash#values_at will convert each key before doing the lookup - @nahiluhmot.
- #184: Allow ranges on Rash to match all Numeric types - @medcat.
- #164, #165, #166: Fixed stack overflow when coercing mashes that contain ActiveSupport::HashWithIndifferentAccess values - @numinit, @kgrz.
- #187: Automatically require version - @medcat.
- #190: Fixed
coerce_key
withfrom
Trash feature and Coercion extension - @gregory. - #192: Fixed StringifyKeys#stringify_keys! to recursively stringify keys of embedded ::Hash types - @dblock.
3.1.0 - 2014-06-25
- #169: Hash#to_hash will also convert nested objects that implement to_hash - @gregory.
- #173: Auto include Dash::IndifferentAccess when IndifferentAccess is included in Dash - @gregory.
- #171: Include Trash and Dash class name when raising
NoMethodError
- @gregory. - #174: Fixed
from
andtransform_with
Trash features when IndifferentAccess is included - @gregory.
3.0.0 - 2014-06-03
Note: This version introduces several backward incompatible API changes. See UPGRADING for details.
- #152: Do not convert keys to String in Hashie::Dash and Hashie::Trash, use Hashie::Extensions::Dash::IndifferentAccess to achieve backward compatible behavior - @dblock.
- #152: Do not automatically stringify keys in Hashie::Hash#to_hash, pass
:stringify_keys
to achieve backward compatible behavior - @dblock.
- #146: Mash#respond_to? inconsistent with #method_missing and does not respond to #permitted? - @dblock.
- #148: Consolidated Hashie::Hash#stringify_keys implementation - @dblock.
- #159: Handle nil intermediate object on deep fetch - @stephenaument.
2.1.2 - 2014-05-12
2.1.1 - 2014-04-12
- #131: Added IgnoreUndeclared, an extension to silently ignore undeclared properties at intialization - @righi.
- #138: Added Hashie::Rash, a hash whose keys can be regular expressions or ranges - @epitron.
- #144: Fixed regression invoking
to_hash
with no parameters - @mbleigh.
2.1.0 - 2014-04-06
- #134: Add deep_fetch extension for nested access - @tylerdooling.
- #89: Do not respond to every method with suffix in Hashie::Mash, fixes Rails strong_parameters - @Maxim-Filimonov.
- #69: Fixed assigning multiple properties in Hashie::Trash - @einzige.
- #99: Hash#deep_merge raises errors when it encounters integers - @defsprite.
- #100: IndifferentAccess#store will respect indifference - @jrochkind.
- #103: Fixed support for Hashie::Dash properties that end in bang - @thedavemarshall.
- #107: Fixed excessive value conversions, poor performance of deep merge in Hashie::Mash - @davemitchell, @dblock.
- #110: Correctly use Hash#default from Mash#method_missing - @ryansouza.
- #111: Trash#translations correctly maps original to translated names - @artm.
- #113: Fixed Hash#merge with Hashie::Dash - @spencer1248.
- #120: Pass options to recursive to_hash calls - @pwillett.
- #129: Added Trash#permitted_input_keys and inverse_translations - @artm.
- #130: IndifferentAccess now works without MergeInitializer - @npj.
- #133: Fixed Hash##to_hash with symbolize_keys - @mhuggins.
- Ruby style now enforced with Rubocop - @dblock.
2.0.5 - 2013-05-10
- #96: Make coercion work better with non-symbol keys in Hashie::Mash - @wapcaplet.
2.0.4 - 2013-04-24
- #90: Various doc tweaks - @craiglittle.
2.0.3 - 2013-03-18
2.0.2 - 2013-02-26
2.0.1 - 2013-02-26
- #81: remove Mash#object_id override - @matschaffer.
2.0.0 - 2013-02-16
- #28: Hashie::Extensions::Coercion coerce_keys takes arguments - @mattfawcett.
- #77: Remove id, type, and object_id as special allowable keys @jch.
- #27: Initialized with merge coerces values - @mattfawcett.
- #39: Trash removes translated values on initialization - @sleverbor.
- #49: Hashie::Hash inherits from ::Hash to avoid ambiguity - @meh, @orend.
- #62: update respond_to? method signature to match ruby core definition - @dlupu.
- #63: Dash defaults are dup'ed before assigned - @ohrite.
- #66: Mash#fetch works with symbol or string keys - @arthwood.
- #72: Updated gemspec with license info - @jordimassaguerpla.