Hatena::ブログ(Diary)

masakiのはてなダイアリー RSSフィード

2009-12-13

UNIVERSAL::tap

最近仕事柄Ruby厨でテスト厨なんですけど、久しぶりにリハビリでPerlモジュール書いてみました。

Rubyには、レシーバを引数にブロック評価してレシーバ自身を返すtapという便利なメソッドがあって、気がつけばよく使っているのでこれをPerlに移植してみました。

http://github.com/masaki/UNIVERSAL-tap

# before
my $module = Module->new;

$module->foo;
$module->bar;
$module->baz;

$module->run;

# after
use UNIVERSAL::tap;
my $module = Module->new->tap(sub {
  $_[0]->foo;
  $_[0]->bar;
  $_[0]->baz;
})->run;

例がアレなのでメリットを感じられない気もしますが、メソッドチェーン最高!という人にはうってつけですね。

tokuhiromtokuhirom 2009/12/14 09:09 サンプルコードがまちがってる気が。

ikasam_aikasam_a 2009/12/15 00:34 ありがとうございます、直しました。あと名前が紛らわしいのは確かで、そんなことからCPANに上げるつもりもないです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ikasam_a/20091213/1260716283