■ XML::Feed::Deduper 書いた
http://github.com/tokuhirom/p5-xml-feed-deduper/tree/master
feedをaggregateしてきて、あたらしいエントリがあったらなんか処理する、みたいなのはよくやるんですが、そういう処理をやるたびに DB_File とかつかってどうこう、みたいなのはめんどいので、適当にできるモジュールをでっちあげた。
利用法は以下のとおり。
use XML::Feed;
use XML::Feed::Deduper;
my $feed = XML::Feed->parse($content);
my $deduper = XML::Feed::Deduper->new(
path => '/tmp/foo.db',
);
for my $entry ($deduper->dedup($feed->entries)) {
# only new entries come here!
}
ちょっとしたアグリゲータを書くときなんかに便利。
Plagger にはこれと同等の処理をする Plagger::Rule::Deduped ってのがあるんですが、それをコピペして、単体モジュールとしてつかえるようにしたというような具合。
今回これつくるのに Any::Moose つかったんですが、なんだかんだで Moose のインターフェースで Perl5OO つかうと楽に書けて便利ですわな。とはいえ、Moose だと依存が多いし、ロードに 0.32sec ほどかかってしまうので、ライブラリには使うのはちょっとアレ、というような事情が昔はあって、この程度のライブラリだと昔はMoose使うのはアホだったんですが、今はMouse はそのへんの欠点をおぎなってるので、なんだかんだでみんなハッピーなんでよかったんじゃないすかね、というようなことを http://d.hatena.ne.jp/charsbar/20090406/1239016623 をみておもった。
トラックバック - http://d.hatena.ne.jp/tokuhirom/20090407/1239079453


