Class: Mash
Overview
This class has dubious semantics and we only have it so that people can write params instead of params.
Instance Method Summary
collapse
Methods inherited from Hash
#add_html_class!, #environmentize_keys!, from_xml, #normalize_param, #only, #protect_keys!, #to_mash, #to_params, #to_xml_attributes, #unprotect_keys!
Constructor Details
#initialize(constructor = {}) ⇒ Mash
11
12
13
14
15
16
17
18
|
# File 'lib/extlib/mash.rb', line 11
def initialize(constructor = {})
if constructor.is_a?(Hash)
super()
update(constructor)
else
super(constructor)
end
end
|
Instance Method Details
#[]=(key, value) ⇒ Object
42
43
44
|
# File 'lib/extlib/mash.rb', line 42
def []=(key, value)
regular_writer(convert_key(key), convert_value(value))
end
|
#default(key = nil) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/extlib/mash.rb', line 25
def default(key = nil)
if key.is_a?(Symbol) && include?(key = key.to_s)
self[key]
else
super
end
end
|
#delete(key) ⇒ Object
95
96
97
|
# File 'lib/extlib/mash.rb', line 95
def delete(key)
super(convert_key(key))
end
|
#except(*keys) ⇒ Mash
Returns A new mash without the selected keys.
106
107
108
|
# File 'lib/extlib/mash.rb', line 106
def except(*keys)
super(*keys.map {|k| convert_key(k)})
end
|
#fetch(key, *extras) ⇒ Object
74
75
76
|
# File 'lib/extlib/mash.rb', line 74
def fetch(key, *)
super(convert_key(key), *)
end
|
#key?(key) ⇒ Boolean
Also known as:
include?, has_key?, member?
61
62
63
|
# File 'lib/extlib/mash.rb', line 61
def key?(key)
super(convert_key(key))
end
|
#merge(hash) ⇒ Mash
89
90
91
|
# File 'lib/extlib/mash.rb', line 89
def merge(hash)
self.dup.update(hash)
end
|
#regular_update ⇒ Object
34
|
# File 'lib/extlib/mash.rb', line 34
alias_method :regular_update, :update
|
#regular_writer ⇒ Object
33
|
# File 'lib/extlib/mash.rb', line 33
alias_method :regular_writer, :[]=
|
#stringify_keys! ⇒ Mash
Used to provide the same interface as Hash.
113
|
# File 'lib/extlib/mash.rb', line 113
def stringify_keys!; self end
|
#symbolize_keys ⇒ Hash
116
117
118
119
120
|
# File 'lib/extlib/mash.rb', line 116
def symbolize_keys
h = Hash.new(default)
each { |key, val| h[key.to_sym] = val }
h
end
|
#to_hash ⇒ Hash
123
124
125
|
# File 'lib/extlib/mash.rb', line 123
def to_hash
Hash.new(default).merge(self)
end
|
#update(other_hash) ⇒ Mash
Also known as:
merge!
51
52
53
54
|
# File 'lib/extlib/mash.rb', line 51
def update(other_hash)
other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) }
self
end
|
#values_at(*indices) ⇒ Array
82
83
84
|
# File 'lib/extlib/mash.rb', line 82
def values_at(*indices)
indices.collect {|key| self[convert_key(key)]}
end
|