module Hashie::Extensions::SymbolizeKeys::ClassMethods
Public Instance Methods
Source
# File lib/hashie/extensions/symbolize_keys.rb, line 57 def symbolize_keys(hash) copy = hash.dup copy.extend(Hashie::Extensions::SymbolizeKeys) unless copy.respond_to?(:symbolize_keys!) copy.tap do |new_hash| symbolize_keys!(new_hash) end end
Return a copy of hash with all keys converted to symbols. @param [::Hash] hash
Source
# File lib/hashie/extensions/symbolize_keys.rb, line 45 def symbolize_keys!(hash) hash.extend(Hashie::Extensions::SymbolizeKeys) unless hash.respond_to?(:symbolize_keys!) hash.keys.each do |k| # rubocop:disable Performance/HashEachMethods symbolize_keys_recursively!(hash[k]) hash[convert_key(k)] = hash.delete(k) end hash end
Convert all keys in hash to symbols.
@param [Hash] hash @example
test = {'abc' => 'def'} Hashie.symbolize_keys! test test # => {:abc => 'def'}
Source
# File lib/hashie/extensions/symbolize_keys.rb, line 25 def symbolize_keys_recursively!(object) case object when self.class symbolize_keys!(object) when ::Array object.each do |i| symbolize_keys_recursively!(i) end when ::Hash symbolize_keys!(object) end end
Symbolize all keys recursively within nested hashes and arrays. @api private
Private Instance Methods
Source
# File lib/hashie/extensions/symbolize_keys.rb, line 72 def convert_key(key) key.respond_to?(:to_sym) ? key.to_sym : key end
Converts a key to a symbol, if possible
@api private @param [<K>] key the key to attempt convert to a symbol @return [Symbol, K]