App-Milter-Limit
view release on metacpan or search on metacpan
lib/App/Milter/Limit/Plugin.pm view on Meta::CPAN
#
# This file is part of App-Milter-Limit
#
# This software is copyright (c) 2010 by Michael Schout.
#
# This is free software; you can redistribute it and/or modify it under
# the same terms as the Perl 5 programming language system itself.
#
package App::Milter::Limit::Plugin;
$App::Milter::Limit::Plugin::VERSION = '0.54';
# ABSTRACT: Milter Limit driver plugin base class
use strict;
use warnings;
use base 'Class::Singleton';
use App::Milter::Limit::Config;
sub _new_instance {
my $class = shift;
my $self = $class->SUPER::_new_instance(@_);
$self->init(@_);
return $self;
}
sub config_get {
my ($self, $section, $name) = @_;
my $conf = $section eq 'global'
? App::Milter::Limit::Config->global
: App::Milter::Limit::Config->section($section);
return $$conf{$name};
}
sub config_defaults {
my ($self, $section, %defaults) = @_;
App::Milter::Limit::Config->set_defaults($section, %defaults);
}
sub init {
my $self = shift;
die ref($self)." does not implement init()\n";
}
sub query {
my $self = shift;
die ref($self)." does not implement query()\n";
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
App::Milter::Limit::Plugin - Milter Limit driver plugin base class
=head1 VERSION
version 0.54
=head1 SYNOPSIS
# in your driver module:
package App::Milter::Limit::Plugin::FooBar;
use base 'App::Milter::Limit::Plugin';
sub init {
( run in 2.350 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )