HTML::WidgetValidator & Stickam

id:summersoldierさん。

Stickam用の、HTML::WidgetValidatorを使用した検証モジュール作ってみました。

http://d.hatena.ne.jp/hatenadiary/20070823/1187876705

英語と日本語と多分以下のコードでいいので、お問い合わせしてみれば。

package HTML::WidgetValidator::Widget::Stickam;

use strict;
use warnings;
use base qw(HTML::WidgetValidator::Widget);

our $VERSION = '0.01';

__PACKAGE__->name('Stickam');
__PACKAGE__->url('http://www.stickam.com/');
__PACKAGE__->models([
    [ {
        type => 'start' ,
        name => 'embed',
        attr => {
            src                 => qr{http://player\.stickam\.com/stickamPlayer/\d+-\d+(|-ja)},
            type                => 'application/x-shockwave-flash',
            width               => qr{\d+},
            height              => qr{\d+},
            scale               => 'noscale',
            allowscriptaccess   => 'always'
        },
      },
      {
        type => 'end',
        name => 'embed',
      }
    ],
]);

1;

t/stickam.t

use strict;
use Test::Base;
use HTML::WidgetValidator;

sub validate {
    my $validator = HTML::WidgetValidator->new(widgets => [ 'Stickam' ]);
    my $result = $validator->validate(shift);
    return $result ? $result->name : ' ';
}

filters {
    input    => [qw/chomp validate/],
    expected => [qw/chomp/],
};

__END__

=== Stickam En
--- input
<embed
    src="http://player.stickam.com/stickamPlayer/174578430-2602561"
    type="application/x-shockwave-flash"
    width="160"
    height="400"
    scale="noscale"
    allowScriptAccess="always"></embed>
--- expected
Stickam

=== Stickam Jp
--- input
<embed
src="http://player.stickam.com/stickamPlayer/173728785-477694-ja"
type="application/x-shockwave-flash" width="480" height="210" scale="noscale"
allowScriptAccess="always"></embed>
--- expected
Stickam

ブログパーツ欲しい!