Recentemente, precisei extrair um hash de pares de chave / valor de um hash existente em ruby, usando uma matriz de chaves. Isso é bastante simples e pode ser feito em uma única linha.
# The keys you're looking for
keys = %w(key1 key2 key3)
# Hash with any number of key / value pairs
original_hash = {
key1: 'Value 1',
key2: 'Value 2',
key3: 'Value 3',
key4: 'Value 4'
}
# New hash, with only the keys you specified.
new_hash = original_hash.reject { |x| !keys.include?(x.to_s) }