« シイラ | メイン | Jemplateでcompileすると何が出てくるのか »

XML::FeedをAtom 1.0に対応に

XML::FeedがAtom 1.0に対応していない件ですが、XML::FeedとAtom 1.0では、feed.nomadscafe.jpでの実装でなんとかしましたが、今回はXML::Feed::Atomを書き換えてみた。

patchはここ(patch後)

バージョンをチェックして、0.3より大きい場合はXML::Atom::*の呼び出すメソッドを変えることぐらいしかやっていませんが、Atom 1.0のupdated、publishedがmodified、issuedで読めます。

sub is_atom10{
    return (shift->{atom}->version > 0.3) ? 1 : 0;
}
sub modified {
    my $feed = shift;
    my $method = ($feed->is_atom10) ? 'updated' : 'modified';
    if (@_) {
        $feed->{atom}->$method($_[0]->iso8601 . 'Z');
    } else {
        iso2dt($feed->{atom}->$method);
    }
}


カテゴリー以外、読む方に関しては問題ないと思う。