class Hash
Enumerable#zip is nonsense when applied to Hashes
Public Instance Methods
zip(*args) { |key, *map{|source| source}| ... }
click to toggle source
# File lib/hash-zip.rb, line 3 def zip(*args) sources = [self] args.each do |arg| if arg.is_a?(Hash) sources << arg else sources << arg.to_h end end output_keys = sources.flat_map(&:keys).uniq if block_given? output_keys.each do |key| yield(key, *sources.map{|source| source[key]}) end nil else result = {} output_keys.each do |key| result[key] = sources.map{|source| source[key]} end result end end