Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/teamdrive_api/core_ext/hash.rb
Instance Method Summary collapse
-
#symbolize_keys ⇒ Object
Returns a new hash with all keys converted to symbols, as long as they respond to
to_sym. -
#symbolize_keys! ⇒ Object
Destructively converts all keys to symbols, as long as they respond to
to_sym.
Instance Method Details
#symbolize_keys ⇒ Object
Returns a new hash with all keys converted to symbols, as long as they respond to to_sym.
hash = { 'name' => 'Rob', 'age' => '28' }
hash.symbolize_keys
# => {:name=>"Rob", :age=>"28"}
Borrowed from ActiveSupport.
11 12 13 14 15 16 17 18 19 |
# File 'lib/teamdrive_api/core_ext/hash.rb', line 11 def symbolize_keys result = self.class.new each_key do |key| new_key = key.to_sym rescue key new_value = self[key].symbolize_keys rescue self[key] result[new_key] = new_value end result end |
#symbolize_keys! ⇒ Object
Destructively converts all keys to symbols, as long as they respond to to_sym. Same as symbolize_keys, but modifies self.
Borrowed from ActiveSupport.
25 26 27 28 29 30 31 32 33 |
# File 'lib/teamdrive_api/core_ext/hash.rb', line 25 def symbolize_keys! keys.each do |key| new_key = key.to_sym rescue key old_value = delete(key) new_value = old_value.symbolize_keys! rescue old_value self[new_key] = new_value end self end |