Sha256: 9cd51ed03bdcdab2fa571852ff0ce8e3c42a2399f2ff7a5efcbac4ef547425ae
Contents?: true
Size: 673 Bytes
Versions: 12
Compression:
Stored size: 673 Bytes
Contents
unless Hash.instance_methods.include?(:underscore_keys) class Hash def underscore_keys new_hash = {} self.each_pair do |key, value| if value.respond_to?(:collect!) # Array value.collect do |item| if item.respond_to?(:each_pair) # Hash item within item.underscore_keys else item end end elsif value.respond_to?(:each_pair) # Hash value = value.underscore_keys end new_key = key.is_a?(String) ? key.underscore : key # only String keys new_hash[new_key] = value end self.replace(new_hash) end end end
Version data entries
12 entries across 12 versions & 2 rubygems