Hashie v4.1.0 Release Notes

Release Date: 2020-02-01 // 6 months ago
  • ➕ Added

    • #499: Add Hashie::Extensions::Mash::PermissiveRespondTo to make specific subclasses of Mash fully respond to messages for use with SimpleDelegator - @michaelherold.

    🛠 Fixed

    • 🛠 #467: Fixed DeepMerge#deep_merge mutating nested values within the receiver - @michaelherold.
    • #505: Ensure that Hashie::Arrays are not deconverted within Hashie::Mashes to make Mash#dig work properly - @michaelherold.
    • #507: Suppress Psych.safe_load arg warn when using Psych 3.1.0+ - @koic.
    • 🚅 #508: Fixed Mash.load no longer uses Rails-only #except - @bobbymcwho.
    • 🔀 #508: Fixed Hashie::Extensions::DeepMerge #deep_merge not correctly dup'ing sub-hashes if active_support hash extensions were not present - @bobbymcwho.
    • #500: Do not warn when setting Mash keys that look like underbang, bang, and query methods - @michaelherold.
    • 💎 #510: Ensure that Hashie::Mash#compact is only defined on Ruby version >= 2.4.0 - @bobbymcwho.
    • #511: Suppress keyword arguments warning for Ruby 2.7.0 - @koic.
    • #512: Suppress an integer unification warning for using Ruby 2.4.0+ - @koic.
    • #513: Suppress a Ruby's warning when using Ruby 2.6.0+ - @koic.

    Miscellaneous

    • 🚀 #981: Exclude tests from the gem release to reduce installation size and improve installation speed - @michaelherold.

Previous changes from v4.0.0

  • Full Changelog

    🆕 New in 4.0.0:

    4.0.0 - 2019-10-30

    ➕ Added

    • #323: Added Hashie::Extensions::Mash::DefineAccessors - @marshall-lee.
    • #474: Expose YAML#safe_load options in Mash#load - @riouruma, @dblock.
    • #478: Added optional array parameter to Hashie::Mash.disable_warnings - @bobbymcwho.
    • 🔀 #481: Ruby 2.6 - Support Hash#merge and #merge! called with multiple Hashes/Mashes - @bobbymcwho.
    • #488: Added ability to create an anonymous Hashie::Mash subclass with key conflict errors silenced using Hashie::Mash.quiet.new - @bobbymcwho.

    🔄 Changed

    🛠 Fixed

    • 🛠 #459: Fixed a regression in Mash.load that disallowed aliases - @arekt and @michaelherold.
    • ⚡️ #465: Fixed deep_update to call any readers when a key exists - @laertispappas.
    • 🚅 #479: Fixed an issue with Hash#except not returning a Mash in Rails 6 - @bobbymcwho.
    • 📚 #489: Updated the documentation to exlain the behavior of Mash and keyword arguments - @Bhacaz.

    Miscellaneous

    • ♻️ #465: Clean up our RuboCop configuration and fix the outstanding line length violations. This involved some minor refactoring on Hashie::Extensions::Coercion, Hashie::Extensions::Dash::IndifferentAccess, Hashie::Extensions::DeepLocate, Hashie::Extensions::Mash::SafeAssignment, and Hashie::Hash, but none that were detectable via the test suite - @michaelherold.
    • ⚡️ #482: Update Travis configs to make jruby builds run on trusty dist. - @BobbyMcWho.