Depois disso, estou tentando comparar duas matrizes de hashes:
db = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.5}, {:foo => "bar", :stack => "overflow", :num => 0.1} ] csv = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.1}, ]
Eu estou tentando usar um conjunto de Ruby ( db_set = Set[db]
, csv_set = Set[csv]
) para comparar os dois usando -
( db_set - csv_set
) e &
( db_set & csv_set
) mas estes não parecem estar executando o comparar operações.
Eu entendi mal o uso de Set
? Como posso comparar esses dois arrays de hashes?
Não há necessidade de usar sets aqui. Parece que você será bom com os operadores do Array.
db = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.5}, {:foo => "bar", :stack => "overflow", :num => 0.1} ] csv = [ {:foo => "bar", :stack => "overflow", :num => 0.5}, {:foo => "bar", :stack => "underlow", :num => 0.1}, ] db - csv # => [{:foo=>"bar", :stack=>"underlow", :num=>0.5}, {:foo=>"bar", :stack=>"overflow", :num=>0.1}] db & csv # => [{:foo=>"bar", :stack=>"overflow", :num=>0.5}]