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

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 74
74:     def convert_key(key)
75:       key.kind_of?(Symbol) ? key.to_s : key
76:     end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 78
78:     def convert_value(value)
79:       case value
80:       when Hash
81:         value.with_indifferent_access
82:       when Array
83:         value.collect { |e| e.is_a?(Hash) ? e.with_indifferent_access : e }
84:       else
85:         value
86:       end
87:     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

Convert to a Hash with String keys.

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 69
69:   def to_hash
70:     Hash.new(default).merge(self)
71:   end

[Source]

    # File vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb, line 66
66:   def to_options!; 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]