Class HashWithIndifferentAccess
In: vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb
Parent: Hash

This implementation is HODEL-HASH-9600 compliant

Methods

[]=   convert_key   convert_value   default   fetch   key?   new   update   values_at  

External Aliases

[]= -> regular_writer

Public Class methods

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 3
 3:   def initialize(constructor = {})
 4:     if constructor.is_a?(Hash)
 5:       super()
 6:       update(constructor)
 7:     else
 8:       super(constructor)
 9:     end
10:   end

Public Instance methods

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 18
18:   def []=(key, value)
19:     regular_writer(convert_key(key), convert_value(value))
20:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 42
42:     def convert_key(key)
43:       key.kind_of?(Symbol) ? key.to_s : key
44:     end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 45
45:     def convert_value(value)
46:       value.is_a?(Hash) ? value.with_indifferent_access : value
47:     end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 12
12:   def default(key)
13:     self[key.to_s] if key.is_a?(Symbol)
14:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 33
33:   def fetch(key, *extras)
34:     super(convert_key(key), *extras)
35:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 25
25:   def key?(key)
26:     super(convert_key(key))
27:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 21
21:   def update(hash)
22:     hash.each {|key, value| self[key] = value}
23:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 37
37:   def values_at(*indices)
38:     indices.collect {|key| self[convert_key(key)]}
39:   end

[Validate]