Ruby メソッド呼び出しからオプション(Hash)部分を取り出す  [ruby]  [idiom]

railsで使えるidiomを見つけた。

rubyで、あるメソッドの呼び出しが以下のようになっている場合、

hoge(:param, :option1 => true , :option2 => false)

以下のやり方でオプション部分だけを取り出せる

def hoge(*prams)
  options = params.last.is_a?(::Hash)? params.pop : {}
  pp options
  pp params
end

参考:

ActiveSupport::CoreExtensions::Array::ExtractOptions#extract_options!