読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

[ruby] メソッドのキーワード引数を指定する場合のイディオム

RSpec on Railsのソースを読んでいて、メソッドのオプション引数を取り出すイディオムを発見した。
こういう簡単で決まりきった処理は、イディオム化してさくっと書きたい。

def foo(*args)
  options = Hash === args.last ? args.pop : {}
  options[:bar] = args.shift unless args.empty?
  # ...

ちょっと長いなー。他に何か良い書き方はあるかな?

追記:moroさんからのブクマコメントで、ActiveSupport2.0Array#extract_options!できるらしい。試してみる

【広告】