2013年6月23日日曜日

Ruby 2.0の%iが地味に便利な件

%iはシンボルの配列を生成する

それほど記述量変わらないので、あまりいい例ではないけれど、%i[hoge hage: fuga] で[:hoge, :hage, :huga]が生成される。%w[hoge hage fuga].map!(&:to_sym)としないでいい

何がいいかというと、テストの時、そのクラス/モジュールはhogeメソッドに応答するという、あまり重要でないけど、そのメソッドに乗っかっていた部分が一気に動かなくなるってのはあり得るので、テストで抑えておきたいことがある時に便利。例えばこんな感じ


%i[hoge hage fuga].each do | method_name |
  expect(Piyo).to respond_to(method_name)
end


楽っちゃ楽ですね。

0 件のコメント: