diffとかいうメソッドが使えない?
要件上、いま書いているcookbookの中でhashの比較をする必要が出てきて、ググっているとhash.diffとかいうメソッドが使えるらしい記事を見つけたけど kitchen testしてみたらそんなメソッドは存在しない、と怒られた。
とりあえずif文とかeach文とかを使いまわせば比較できる。
testhash = { "sushi" => "chutoro", "niku" => "stake", "neko" => "koban" }
testhash2 = {"niku" => "stake", "neko" => "koban", "sushi" => "chutoro", "yama" => "kawa", "kaiware" => "daikon" }
commontest = {}
difftest = {}
testhash2.each do | k,v |
if testhash.include?(k) && testhash[k] == v
commontest.update(k => v)
else
difftest.update(k => v)
end
end
p commontest
p difftest
共通な要素と差分の要素を一応ゲットできることはできる。
{"niku"=>"stake", "neko"=>"koban", "sushi"=>"chutoro"}
{"yama"=>"kawa", "kaiware"=>"daikon"}
でもこんな面倒でしたっけ?わたしが勉強不足なだけでしょうか、、、、