諸々変更しました。

ハッシュをマージするのではなく、yamlの構造とrubyのクラスの性質を使って判断条件を変更してみました。