summaryrefslogtreecommitdiff
path: root/README.md
Commit message (Collapse)AuthorAgeFilesLines
* Fix: TOC.dblock2022-03-261-43/+41
|
* Move danger into its own workflow file.dblock2022-03-251-1/+1
|
* Include example of Dash's lazy evaluation featureNicholas Jakobsen2021-12-091-1/+4
| | | | This was added in https://github.com/hashie/hashie/pull/34/commits/d20eed6540b7cc264583244088344f73436292b7 but was never documented.
* Preparing for next development iteration, 5.0.1.dblock2021-11-081-1/+2
|
* Preparing for release, 5.0.0.v5.0.0dblock2021-11-081-43/+44
|
* Lint the CI configuration and update badgeMichael Herold2021-06-271-1/+1
| | | | | | | | | Using YAML lists over pseudo-JSON lists makes for easier diffs. Breaking blocks apart with an empty line helps readability. Avoiding strings delimeters when you don't need them helps with readability. The name of the workflow should describe its purpose. Multithreading bundle installs leads to faster builds. And we need to update the badge to our new CI location.
* Remove mention and configuration of CodeClimateMichael Herold2021-06-271-2/+0
| | | | | We don't really care about the metrics it gives and we can't access configuration for it anymore for some reason, so let's end it.
* Fix inconsistencies with Dash defaultsMichael Herold2020-10-231-0/+21
| | | | | | | | | | | The normal behavior of Dash with respect to property defaults differed from the behavior of a Dash/Trash with IgnoreUndeclared mixed in. This is because some situations called the defaults and some did not. This change normalizes the behavior so that all situations where the defaults should be used to override unset values behave consistently, as well as all situations where the default should not override a `nil` value.
* Allow exporting a normal, not-indifferent HashMichael Herold2020-10-221-0/+12
| | | | | | | Following the conventions in `activesupport` and the semantics of the `#to_hash` method in Ruby's standard library, the `#to_hash` method for a hash that has mixed in `IndifferentAccess` will now export the hash as a normal, not-indifferent hash.
* Fix typo in README for PredefinedValuesGustav2020-10-161-1/+1
|
* Add Hashie::Extensions::Dash::AllowListAlbert Salim2020-09-201-0/+15
| | | | | | | Extends a Dash with the ability to accept only predefined values on a property. #61
* Updated Copyright to (c) 2009-2020 Intridea, Inc., and Contributors.dblock2020-06-111-1/+1
|
* Added TOC and upgraded danger-changelog to verify the keep-a-changelog ↵dblock2020-05-081-41/+56
| | | | formatted CHANGELOG.
* Hashie mascot (#522)Caroline Artz2020-05-081-1/+4
|
* Changes to `Mash` initialization key string conversion. (#521)Caroline Artz2020-05-041-5/+18
|
* Preparing for next development iteration, 4.1.1.Bobby McDonald2020-02-011-1/+2
|
* Preparing for release, 4.1.0v4.1.0Bobby McDonald2020-02-011-2/+2
|
* Suppress an integer unification warning for Ruby 2.4.0+Koichi ITO2020-01-161-2/+2
| | | | | | | | | | | | | | | | | This PR suppresss the following integer unification warning for Ruby 2.4.0+ ```console % ruby -v ruby 2.4.9p362 (2019-10-02 revision 67824) [x86_64-darwin17] % bundle exec rspec spec/hashie/extensions/deep_merge_spec.rb Hashie::Extensions::DeepMerge /Users/koic/src/github.com/hahie/hashie/lib/hashie/utils.rb:38: warning: constant ::Fixnum is deprecated /Users/koic/src/github.com/hahie/hashie/lib/hashie/utils.rb:38: warning: constant ::Bignum is deprecated ```
* Add a PermissiveRespondTo extension for MashesMichael Herold2019-11-171-0/+24
| | | | | | | | | | | | | By default, Mashes don't state that they respond to unset keys. This causes unexpected behavior when you try to use a Mash with a SimpleDelegator. This new extension allows you create a permissive subclass of Mash that will be fully compatible with SimpleDelegator and allow you to fully do thunk-oriented programming with Mashes. This comes with the trade-off of a ~19KB cache for each of these subclasses and a ~20% performance penalty on any of those subclasses.
* Update the README from moving the repoMichael Herold2019-11-161-6/+6
| | | | [ci skip]
* Preparing for next development iteration, 4.0.1.Bobby McDonald2019-10-301-1/+1
|
* Preparing for release, 4.0.0.v4.0.0Bobby McDonald2019-10-301-1/+1
|
* Remove references to blacklists and whitelistsBobby McDonald2019-10-251-3/+3
|
* Updated README.mdJean-Francis Bastien2019-10-151-4/+10
| | | | SymbolizeKeys and Keywords argument behavior.
* Allow mash error silencing (#488)Bobby McDonald2019-10-141-0/+7
|
* Add selective key-conflict warnings for Mash subclasses (#478)Bobby McDonald2019-07-181-0/+42
| | | | | | | | | | | In some cases, you want to be able to ignore Mash warnings for keys that you know you aren't going to access via a method accessor, yet be warned for other keys that you know you might want to access. This change adds the ability to selectively ignore warnings for specific keys instead of globally ignoring the warnings. The change retains the original behavior as well, so if you call `Mash.disable_warnings` without a value it will still globally ignore the warnings.
* Fix README typoSam Figueroa2019-04-111-2/+2
|
* Allow options on Mash.load (#474)Daniel Doubrovkine (dB.) @dblockdotorg2019-03-221-1/+9
| | | | | | | | | | | | | | | | | `Mash.load` uses the Ruby standard library to load Yaml-serialized files into a Mash. The original implementation used `YAML.load` for this purpose. However, that method is inherently unsafe so we switched to using `YAML.safe_load`. Safely loading Yaml files has many different domain-specific configuration flags that we did not, by default, expose. This change introduces the ability to configure the safe loading of Yaml files so that all types of Yaml can be loaded when necessary using the flags from the standard library. This implementation preserves the backwards-compatibility with the prior implementation so that it should not require updates from users of the current `Mash.load` behavior. For those who this change affects, we included upgrading documentation to ease the transition.
* Add Hashie::Extensions::Mash::DefineAccessors.Vladimir Kochnev2019-01-281-0/+25
| | | | | | | | | | | | | | | | | | | | | | | This patch adds an extension for Mash that makes it behave like `OpenStruct`. It reduces overhead of `method_missing?` magic which is a good thing! It's inspired by the recent @sferik's work on `OpenStruct` — https://github.com/ruby/ruby/pull/1033. When using it in `Mash` subclasses it makes them *remember* methods so then it's more like `ActiveModel` than `OpenStruct` in this case. To use it like `OpenStruct` one could use this shortcut: ```ruby { foo: 1, bar: 2 }.to_mash.with_accessors! ``` Implementation details: It injects to class an anonymous module that stores accessor method definitions. This is inspired by `ActiveModel` / `ActiveRecord`. It allows to override accessors in subclass and call them via `super` if this is intended.
* Prepare for next development version, v3.6.1Michael Herold2018-08-131-1/+1
|
* Preparing for release, 3.6.0v3.6.0Michael Herold2018-08-131-1/+1
|
* Add MethodOverridingInitializer extensionLucas Nestor2018-08-111-0/+20
|
* Fix: badges.dblock2018-06-081-4/+2
|
* Fix doc typochocolateboy2018-06-081-1/+1
|
* Document Dash double-splat operator gotchasMichael Herold2018-02-061-0/+32
| | | | | | | Let this be a lesson, folks: don't subclass the Hash class! For more information, see the following: https://github.com/intridea/hashie/issues/353#issuecomment-363294886
* Add documentation for Mash subclassesMichael Herold2018-02-041-16/+35
| | | | | | | | | The behavior of Mash subclasses around the wrapping of inner sub-Hashes can be confusing, so we should have some documentation around it. This captures the process of subclasses wrapping their sub-Hashes in a guided fashion. Also, this reorganizes a bit of the Mash readme to group related topics together under headlines.
* Preparing for next development iteration, 3.5.8Michael Herold2017-12-191-1/+1
|
* Preparing for release 3.5.7v3.5.7Michael Herold2017-12-191-1/+1
|
* Prepare for the next development iteration, 3.5.7Michael Herold2017-07-121-1/+1
|
* Preparing for release 3.5.6v3.5.6Michael Herold2017-07-121-1/+1
|
* Prepare for next development iteration, 3.5.6Michael Herold2017-02-241-1/+1
|
* Prepare for release 3.5.5v3.5.5Michael Herold2017-02-241-1/+1
|
* Add an extension to maintain original Mash keys (#326)Michael Herold2017-02-221-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | One of the behaviors of Mash that we see regularly surprise users is that Mash stringifies any keys passed into it. This leads to unexpected lack of synergy between Mash and its cousins (particularly Dash), since the property DSLs do not handle indifferent key access. This extension ensures that the original keys are kept inside the Mash's data structure, at the expense of more costly logic for fetching information indifferently. I have included a benchmark that compares the two. The benchmark shows that when you are passing string keys into a Mash, using this extension will actually be _faster_ than the default implementation, but that the reverse is true when passing symbol keys. In #296, I tried to do this universally for all Mashes, which slowed down the fetching behavior for Mash significantly. I like this attempt much better because it allows users to opt into the new behavior if they want it, while still keeping the default implementation as-is. Fixes #196 by giving the option of keeping the original structure of the Mash when using it with Dash. Fixes #246 by giving the option of opting into keeping the original keys. Closes #296 by giving a more flexible path forward that doesn't change the semantics of the main Mash class.
* Prepare for next development iteration, 3.5.5Michael Herold2017-02-221-1/+1
|
* Prepare for release 3.5.4v3.5.4Michael Herold2017-02-221-1/+1
|
* Add Hashie::Extensions::Mash::SymbolizeKeysMichael Herold2017-02-201-0/+27
| | | | | | | | | | | | | | | | We often have requests to make Mash symbolize keys by default. Since Hashie is used across so many different version of Ruby, we have been hesitant to make this behavior the default. However, there are valid use cases for wanting symbol keys. To satisfy both the needs of those on older Rubies and the needs of those who want symbol keys, this extension gives the end-user the ability to toggle on symbolized keys in their Mash subclasses. By adding this ability, we can wait to implement the symbol keys as a default for a while longer. See #341, #342 for more information. This is a half-measure toward the implementation of #342 (which makes Mash symbolize keys by default).
* Prepare for next development iteration, 3.5.4Michael Herold2017-02-111-1/+1
|
* Prepare for release 3.5.3v3.5.3Michael Herold2017-02-111-1/+1
|
* Prepare for next development iteration, 3.5.3Michael Herold2017-02-101-1/+1
|
* Prepare for release of 3.5.2v3.5.2Michael Herold2017-02-101-1/+1
|