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 )