Mail-MtPolicyd
view release on metacpan or search on metacpan
lib/Mail/MtPolicyd/Request.pm view on Meta::CPAN
package Mail::MtPolicyd::Request;
use Moose;
use namespace::autoclean;
use Mail::MtPolicyd::Plugin::Result;
our $VERSION = '2.05'; # VERSION
# ABSTRACT: the request object
has 'attributes' => (
is => 'ro', isa => 'HashRef', required => 1,
traits => [ 'Hash' ],
handles => { 'attr' => 'get' },
);
# gets attached later
has 'session' => ( is => 'rw', isa => 'Maybe[HashRef]' );
has 'server' => (
is => 'ro', isa => 'Net::Server', required => 1,
handles => {
'log' => 'log',
}
);
has 'type' => (
is => 'ro',
isa => 'Str',
lazy => 1,
default => sub {
my $self = shift;
return( $self->attr('request') );
}
);
has 'use_caching' => ( is => 'rw', isa => 'Bool', default => 1 );
sub dump_attr {
my $self = shift;
my $attr = $self->attributes;
return( join(', ', map { $_.'='.$attr->{$_} } keys %$attr ) );
}
sub get {
my ( $self, $value ) = @_;
my ($scope, $name);
if( ! defined $value || $value eq '' ) { return; }
my @params = split(':', $value, 2);
if( scalar(@params) == 2 ) {
( $scope, $name ) = @params;
} elsif( scalar(@params) == 1) {
( $scope, $name ) = ( 'request', @params );
}
if( $scope eq 'session' || $scope eq 's' ) {
if( ! defined $self->session ) {
return;
}
return $self->session->{$name};
} elsif( $scope eq 'request' || $scope eq 'r' ) {
return $self->attr( $name );
}
( run in 0.485 second using v1.01-cache-2.11-cpan-5a3173703d6 )