1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
package Mail::AuthenticationResults::Token;
# ABSTRACT: Base class for modelling AuthenticationResults Header parts
require 5.008;
use strict;
use warnings;
our $VERSION = '2.20231031'; # VERSION
use Carp;
sub new {
my ( $class, $header, $args ) = @_;
my $self = { 'args' => $args };
bless $self, $class;
$self->{ 'header' } = $header;
$self->parse();
return $self;
}
sub new_from_value {
my ( $class, $value ) = @_;
my $self = { 'value' => $value };
bless $self, $class;
return $self;
}
sub value {
my ( $self ) = @_;
return $self->{ 'value' };
}
sub remainder {
my ( $self ) = @_;
return $self->{ 'header' };
}
sub parse {
my ( $self ) = @_;
croak 'parse not implemented';
}
sub is { # uncoverable subroutine
# a base Token cannot be instantiated, and all subclasses should implement this method.
my ( $self ) = @_; # uncoverable statement
croak 'is not implemented'; # uncoverable statement
}
1;;
__END__
=pod
=encoding UTF-8
=head1 NAME
Mail::AuthenticationResults::Token - Base class for modelling AuthenticationResults Header parts
=head1 VERSION
version 2.20231031
=head1 DESCRIPTION
Classes representing a tokenised Authentication Results Header, used in parsing
=head1 METHODS
=head2 new( $header, $args )
Return a new Token object parsed from the given $header string using $args
$args value depend on the subclass of Token used, possible types are
L<Mail::AuthenticationResults::Token::Assignment> an assignment operator
L<Mail::AuthenticationResults::Token::Comment> a comment
L<Mail::AuthenticationResults::Token::QuotedString> a quoted string
L<Mail::AuthenticationResults::Token::Separator> a separator
L<Mail::AuthenticationResults::Token::String> a string
=head2 new_from_value( $value )
Create a new token from the given value
=head2 value()
Return the value of the current Token instance.
=head2 remainder()
Return the remainder of the header string after parsing the current token out.
=head2 parse()
Run the parser on the current $header and set up value() and remainder().
=head2 is()
Return the type of token we are.
=head1 AUTHOR
Marc Bradshaw <marc@marcbradshaw.net>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Marc Bradshaw.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|