キーワード引数対応あたりから、 ruby でも hash の splat で merge 出来るようになってたのをすっかり見落としてた。 でも https://bugs.ruby-lang.org/issues/10315 が気になるので、使う時は 2.2 からにしといた方が良さそう(最近古いの触らないけど)
ruby -e 'h1={a: 1, b: 1, c: 1}; h2={b: 2, c: 2, d: 2}; p({ **h1, **h2, a: 3 })'
on ruby 2.1.8p440 (2015-12-16 revision 53160) [x86_64-darwin16.0]
{:a=>3, :b=>1, :c=>1, :d=>2}
on ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin16]
{:a=>3, :b=>2, :c=>2, :d=>2}