そろそろkokogikoについて一言いっておくか

kokogikoが自分は Perl Hacker から添削されたことがない、建設的な意見をされたことがないなどとのたまうので、そろそろ俺が一言いっておくか。

id:miyagawa の野郎がすでにコメ欄で指摘してやがる内容については指摘しねえからそのつもりでな。

HTTP::MobileAgent::Plugin::XHTML

my $env     = $ENV{"DOCOMO_HTML_VERMAP"};
$HTTP::MobileAgent::DoCoMo::HTMLVerMap = $env ? 
                                             ref($env) ? 
                                                 $env      : 
                                                 eval $env : 
                                             $VERSION lt $HTTP::MobileAgent::VERSION ? 
                                                 $HTTP::MobileAgent::DoCoMo::HTMLVerMap :
                                                 [
    # regex => version
    qr/[DFNP]501i/                                                                       => '1.0',
    qr/502i|821i|209i|691i|(F|N|P|KO)210i|^F671i$/                                       => '2.0',
    qr/(D210i|SO210i)|503i|211i|SH251i|692i|200[12]|2101V/                               => '3.0',
    qr/504i|251i|^F671iS$|^F661i$|^F672i$|212i|SO213i|2051|2102V|2701|850i/              => '4.0',
    qr/eggy|P751v/                                                                       => '3.2',
    qr/505i|506i|252i|253i|P213i|600i|700i|701i|SA800i|880i|SH851i|P851i|881i|900i|901i/ => '5.0',
    qr/882i|601i|D800iDS|P703imyu|F883i$|L704i|P704imyu/                                 => '6.0',
    qr/903i|N703iD|904i|F883iES|[^L]704i$|N704imyu/                                      => '7.0',
    qr/905i/                                                                             => '7.1',
];

なんだよこれ。

環境変数を eval するとか意味わかんねえよ。セキュリティ的に危険だろ。$HTTP::MobileAgent::DoCoMo::HTMLVerMap は our されてんだから、普通に上書きしろよ。

そもそも kokogiko 以外 html_version なんか今時つかってねーんだよ。お前はいつも html_version のデータが古いとのたまうが、なんにつかってんのか言わないからなにも進展しねーんだよ。

# Defined at Original HTTP::KobileAgent::EZweb

ってなんだよ。KobileAgent の K は KCatch の K ですか?ってんだよ。

HTTP::MobileAgent::Plugin::ID

HTTP::MobileUserIDと似ていますが微妙に欲しかったユースケースと違うので作りました。

どうちがうんだよ。そこを書けよ。そこかかなきゃなにもわかんねえんだよ。

HTTP::MobileAgent::Plugin::Location

{
    no strict 'refs';
    for my $accessor (qw/location area err/) 
        { *{"HTTP::MobileAgent::$accessor"} = Class::Accessor::Fast::make_accessor("HTTP::MobileAgent",$accessor) }
}

なにこのコード。C::A::Fast->make_accessor の返り値とか普通つかわねーよ。もっと普通に書けよ。

テスト

全部のモジュールに実際のモジュールに関するテストがまったくねえよ。