aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/hash/keys.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib/active_support/core_ext/hash/keys.rb')
-rw-r--r--activesupport/lib/active_support/core_ext/hash/keys.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/core_ext/hash/keys.rb b/activesupport/lib/active_support/core_ext/hash/keys.rb
index a9169cf4a5..4d32a6b8a5 100644
--- a/activesupport/lib/active_support/core_ext/hash/keys.rb
+++ b/activesupport/lib/active_support/core_ext/hash/keys.rb
@@ -24,7 +24,7 @@ module ActiveSupport #:nodoc:
# Return a new hash with all keys converted to symbols.
def symbolize_keys
inject({}) do |options, (key, value)|
- options[key.to_sym] = value
+ options[key.to_sym || key] = value
options
end
end
@@ -32,8 +32,8 @@ module ActiveSupport #:nodoc:
# Destructively convert all keys to symbols.
def symbolize_keys!
keys.each do |key|
- unless key.is_a?(Symbol)
- self[key.to_sym] = self[key]
+ unless key.is_a?(Symbol) || (new_key = key.to_sym).nil?
+ self[new_key] = self[key]
delete(key)
end
end