Hash#flatten_keys
operator_for_match = { :partial => 'like', :forward => 'like', :backward => 'like', :exact => '=' }
こんなん書くのは面倒なので、こんな風に書けたらいいなって思った。
operator_for_match = { [:partial, :forward, :backward] => 'like', :exact => '=' }.flatten_keys
で、それを実現するコードはこちら。
class Hash def flatten_keys inject({}) do |dest, entry| key, value = *entry if key.respond_to?(:each) key.each{|k| dest[k] = value} else dest[key] = value end dest end end end