/usr/local/CPAN/mobirc/App/Mobirc/Validator.pm
package App::Mobirc::Validator;
use strict;
use warnings;
use Params::Validate ':all';
use Exporter 'import';
our @EXPORT = 'validate_hook';
my $map = {
authorize => [
{ can => 'register' },
{ isa => 'App::Mobirc' },
{ isa => 'HTTP::Engine::Request' },
],
response_filter => [
{ can => 'register' },
{ isa => 'App::Mobirc' },
{ isa => 'HTTP::Engine::Response' },
],
request_filter => [
{ can => 'register' },
{ isa => 'App::Mobirc' },
{ isa => 'HTTP::Engine::Request' },
],
httpd => [
{ can => 'register' },
{ isa => 'App::Mobirc' },
{ isa => 'HTTP::Engine::Request' },
],
html_filter => [
{ can => 'register' },
{ isa => 'App::Mobirc' },
{ isa => 'HTTP::Engine::Request' },
{ type => SCALAR },
],
};
sub validate_hook {
my ( $hook, @args ) = @_;
my $rule = $map->{$hook} or die "unknown hook point: $hook";
validate_pos(@args, @$rule);
}
1;