Sha256: 01f5d7e1584f6e59b7d69e5632d7829cc97f8966ee8fe01bddb776b71bccf021
Contents?: true
Size: 1.01 KB
Versions: 9
Compression:
Stored size: 1.01 KB
Contents
module Hashie module Extensions module SymbolizeKeys # Convert all keys in the hash to symbols. # # @example # test = {'abc' => 'def'} # test.symbolize_keys! # test # => {:abc => 'def'} def symbolize_keys! keys.each do |k| symbolize_keys_recursively!(self[k]) self[k.to_sym] = delete(k) end self end # Return a new hash with all keys converted # to symbols. def symbolize_keys dup.symbolize_keys! end protected # Symbolize all keys recursively within nested # hashes and arrays. def symbolize_keys_recursively!(object) if self.class === object object.symbolize_keys! elsif ::Array === object object.each do |i| symbolize_keys_recursively!(i) end object elsif object.respond_to?(:symbolize_keys!) object.symbolize_keys! else object end end end end end
Version data entries
9 entries across 8 versions & 3 rubygems