Class: Hash::Indifferent

Inherits:
Hash
  • Object
show all
Defined in:
lib/hash_ext/indifferent.rb

Direct Known Subclasses

Accessible

Instance Method Summary collapse

Constructor Details

#initialize(hash = {}) ⇒ Indifferent

Returns a new instance of Indifferent.



4
5
6
# File 'lib/hash_ext/indifferent.rb', line 4

def initialize(hash={})
  update hash
end

Instance Method Details

#[](key) ⇒ Object



8
9
10
# File 'lib/hash_ext/indifferent.rb', line 8

def [](key)
  super normalize_key(key)
end

#[]=(key, value) ⇒ Object Also known as: store



12
13
14
# File 'lib/hash_ext/indifferent.rb', line 12

def []=(key, value)
  super normalize_key(key), normalize_value(value)
end

#delete(key) ⇒ Object



17
18
19
# File 'lib/hash_ext/indifferent.rb', line 17

def delete(key)
  super normalize_key(key)
end

#fetch(key, *args, &block) ⇒ Object



40
41
42
# File 'lib/hash_ext/indifferent.rb', line 40

def fetch(key, *args, &block)
  super normalize_key(key), *args, &block
end

#key?(key) ⇒ Boolean Also known as: include?, has_key?, member?

Returns:

  • (Boolean)


33
34
35
# File 'lib/hash_ext/indifferent.rb', line 33

def key?(key)
  super normalize_key(key)
end

#merge(hash) ⇒ Object



29
30
31
# File 'lib/hash_ext/indifferent.rb', line 29

def merge(hash)
  dup.update hash
end

#update(hash) ⇒ Object Also known as: merge!



21
22
23
24
25
26
# File 'lib/hash_ext/indifferent.rb', line 21

def update(hash)
  hash.each do |key, value|
    store normalize_key(key), normalize_value(value)
  end
  self
end