Class: Hash

Inherits:
Object show all
Defined in:
lib/rhc/core_ext.rb

Instance Method Summary collapse

Instance Method Details

#reverse_merge!(other_hash) ⇒ Object



198
199
200
201
# File 'lib/rhc/core_ext.rb', line 198

def reverse_merge!(other_hash)
  # right wins if there is no left
  merge!( other_hash ){|key,left,right| left }
end

#slice(*args) ⇒ Object



192
193
194
195
196
197
# File 'lib/rhc/core_ext.rb', line 192

def slice(*args)
  args.inject({}) do |h, k|
    h[k] = self[k] if has_key?(k)
    h
  end
end

#slice!(*args) ⇒ Object



185
186
187
188
189
190
191
# File 'lib/rhc/core_ext.rb', line 185

def slice!(*args)
  s = []
  args.inject([]) do |a, k|
    s << [k, delete(k)] if has_key?(k)
  end
  s
end

#stringify_keys!Object



173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/rhc/core_ext.rb', line 173

def stringify_keys!
  keys.each do |key|
    v = delete(key)
    if v.is_a? Hash
      v.stringify_keys!
    elsif v.is_a? Array
      v.each{ |value| value.stringify_keys! if value.is_a? Hash }
    end
    self[(key.to_s rescue key) || key] = v
  end
  self
end