mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Revert #26826 and add documentation
This reverts commit a01cf703
as explained in the comment to #26826:
Realized that this PR caused the following warning in Travis CI:
```
/home/travis/build/rails/rails/activesupport/lib/active_support/dependencies.rb:293: warning: loading in progress, circular require considered harmful - /home/travis/build/rails/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb
```
Indeed, `active_support/core_ext/hash/indifferent_access.rb` **needs** to require `active_support/hash_with_indifferent_access.rb` in order to access the class `ActiveSupport::HashWithIndifferentAccess`.
The other way around, though, is not _strictly_ required, unless someone tries (like I did in the [gist above](https://gist.github.com/claudiob/43cc7fe77ff95951538af2825a71e5ec)) to use `ActiveSupport::HashWithIndifferentAccess` by only requiring `active_support/hash_with_indifferent_access.rb` without first requiring `active_support/core_ext/hash/indifferent_access.rb`.
I think the solution to this is to revert this PR and instead change the documentation to explicitly state that **developers should not require 'active_support/hash_with_indifferent_access'** if all they want is to use `ActiveSupport::HashWithIndifferentAccess` – instead they should require `active_support/core_ext/hash/indifferent_access.rb`.
This commit is contained in:
parent
8447f8d01c
commit
fbda46758b
1 changed files with 6 additions and 1 deletions
|
@ -1,6 +1,5 @@
|
|||
require "active_support/core_ext/hash/keys"
|
||||
require "active_support/core_ext/hash/reverse_merge"
|
||||
require "active_support/core_ext/hash/indifferent_access"
|
||||
|
||||
module ActiveSupport
|
||||
# Implements a hash where keys <tt>:foo</tt> and <tt>"foo"</tt> are considered
|
||||
|
@ -41,6 +40,12 @@ module ActiveSupport
|
|||
# rgb = { black: '#000000', white: '#FFFFFF' }.with_indifferent_access
|
||||
#
|
||||
# which may be handy.
|
||||
#
|
||||
# To access this class outside of Rails, require the core extension with:
|
||||
#
|
||||
# require "active_support/core_ext/hash/indifferent_access"
|
||||
#
|
||||
# which will, in turn, require this file.
|
||||
class HashWithIndifferentAccess < Hash
|
||||
# Returns +true+ so that <tt>Array#extract_options!</tt> finds members of
|
||||
# this class.
|
||||
|
|
Loading…
Reference in a new issue