Sha256: ea721d68a61dbe20a80122f2e426031435254eabb61e328e6a71cc094e543df7
Contents?: true
Size: 636 Bytes
Versions: 2
Compression:
Stored size: 636 Bytes
Contents
require "hash_deep_join/version" class Hash def deep_join(separator = '_') joined_hash = {} each do |key, value| unless value.is_a? Hash joined_hash.merge! key => value next end value.map do |nested_key, nested_value| inner_hash = ({ nested_key => nested_value }).deep_join(separator) inner_hash.each do |joined_key, joined_value| joined_hash.merge! "#{key}#{separator}#{joined_key}" => joined_value end end end joined_hash end def deep_join!(separator = '_') _self = dup clear self.merge! _self.deep_join separator end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
hash_deep_join-0.0.2 | lib/hash_deep_join.rb |
hash_deep_join-0.0.1 | lib/hash_deep_join.rb |