345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
|
# File 'activesupport/lib/active_support/hash_with_indifferent_access.rb', line 345
def transform_keys!(hash = NOT_GIVEN, &block)
return to_enum(:transform_keys!) if NOT_GIVEN.equal?(hash) && !block_given?
if hash.nil?
super
elsif NOT_GIVEN.equal?(hash)
keys.each { |key| self[yield(key)] = delete(key) }
elsif block_given?
keys.each { |key| self[hash[key] || yield(key)] = delete(key) }
else
keys.each { |key| self[hash[key] || key] = delete(key) }
end
self
end
|