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

this class has dubious semantics and we only have it so that people can write params[:key] instead of params[‘key’]

Methods

[]=   convert_key   convert_value   default   delete   dup   fetch   key?   merge   new   stringify_keys!   symbolize_keys!   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 5
 5:   def initialize(constructor = {})
 6:     if constructor.is_a?(Hash)
 7:       super()
 8:       update(constructor)
 9:     else
10:       super(constructor)
11:     end
12:   end

Public Instance methods

[Source]

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

[Source]

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

[Source]

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 14
14:   def default(key = nil)
15:     if key.is_a?(Symbol) && include?(key = key.to_s)
16:       self[key]
17:     else
18:       super
19:     end
20:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 60
60:   def delete(key)
61:     super(convert_key(key))
62:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 52
52:   def dup
53:     HashWithIndifferentAccess.new(self)
54:   end

[Source]

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

[Source]

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

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 56
56:   def merge(hash)
57:     self.dup.update(hash)
58:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 64
64:   def stringify_keys!; self end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 65
65:   def symbolize_keys!; self end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 29
29:   def update(other_hash)
30:     other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) }
31:     self
32:   end

[Source]

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

[Validate]