aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/hash_with_indifferent_access_test.rb
Commit message (Collapse)AuthorAgeFilesLines
* Implement `fetch_values` for HashWithIndifferentAccess (#28316)Josh Pencheon2017-04-101-0/+12
| | | | | | | `fetch_values` was added to Hash in Ruby 2.3.0: https://bugs.ruby-lang.org/issues/10017 This patch adds an implemention for instances of HWAI, in line with the existing definitions of `fetch` and `values_at`.
* Fix `warning: already initialized constant ↵Ryuta Kamizono2017-04-071-1/+0
| | | | | | HashWithIndifferentAccessTest::HashWithIndifferentAccess` Caused since #28607.
* Move HashWithIndifferentAccess tests to separate fileMichael Stock2017-03-301-0/+734
|
* test/hash: move lonely indifferent hash testSimon Eskildsen2015-07-101-11/+0
|
* - Moved hwia frozen value assignment test to hash_ext_test similar to other ↵Vipul A M2015-01-171-7/+1
| | | | | | | tests - Fixed the wrong use of with_indifferent_access on hash in the test which failed for isolated tests - Renamed to appropriately specify what the test does
* Fix assignment for frozen value in HWIAAditya Kapoor2015-01-171-0/+7
|
* Add necessary 'require reverse_merge' to HAWI.rbclaudiob2014-10-171-0/+10
Hashes with indifferent access should support `reverse_merge` out-of-the-box but they don't; for instance the following code fails: ```ruby require 'active_support' require 'active_support/hash_with_indifferent_access' hash = HashWithIndifferentAccess.new key: :old_value hash.reverse_merge key: :new_value ``` This PR fixes the case above by simply requiring `active_support/core_ext/hash/reverse_merge` in `hash_with_indifferent_access.rb` and adding a test that confirms the fix. --- Here are more details about the bugfix. Currently, `reverse_merge` is [defined in HashWithIndifferentAccess](https://github.com/rails/rails/blob/4e8ea13ba1a0870905a46fac5f232d9f41eef8a4/activesupport/lib/active_support/hash_with_indifferent_access.rb#L208) by invoking `super`, that is by invoking `Hash#reverse_merge`: ```ruby def reverse_merge(other_hash) super(self.class.new_from_hash_copying_default(other_hash)) end ``` However, Ruby's `Hash` does not have the `reverse_merge` by default: it must be added by ActiveSupport, and that requires the following line of code to be present: ```ruby require 'active_support/core_ext/hash/reverse_merge' ```