init III
This commit is contained in:
186
Perl OTRS/Kernel/cpan-lib/MIME/Parser/Results.pm
Normal file
186
Perl OTRS/Kernel/cpan-lib/MIME/Parser/Results.pm
Normal file
@@ -0,0 +1,186 @@
|
||||
package MIME::Parser::Results;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MIME::Parser::Results - results of the last entity parsed
|
||||
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
Before reading further, you should see L<MIME::Parser> to make sure that
|
||||
you understand where this module fits into the grand scheme of things.
|
||||
Go on, do it now. I'll wait.
|
||||
|
||||
Ready? Ok...
|
||||
|
||||
### Do parse, get results:
|
||||
my $entity = eval { $parser->parse(\*STDIN); };
|
||||
my $results = $parser->results;
|
||||
|
||||
### Get all messages logged:
|
||||
@msgs = $results->msgs;
|
||||
|
||||
### Get messages of specific types (also tests if there were problems):
|
||||
$had_errors = $results->errors;
|
||||
$had_warnings = $results->warnings;
|
||||
|
||||
### Get outermost header:
|
||||
$top_head = $results->top_head;
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Results from the last MIME::Parser parse.
|
||||
|
||||
|
||||
=head1 PUBLIC INTERFACE
|
||||
|
||||
=over 4
|
||||
|
||||
=cut
|
||||
|
||||
use strict;
|
||||
|
||||
### Kit modules:
|
||||
use MIME::Tools qw(:msgs);
|
||||
|
||||
|
||||
#------------------------------
|
||||
|
||||
=item new
|
||||
|
||||
I<Constructor.>
|
||||
|
||||
=cut
|
||||
|
||||
sub new {
|
||||
bless {
|
||||
MPI_ID => 'MIME-parser',
|
||||
MPI_Msgs => [],
|
||||
MPI_Level => 0,
|
||||
MPI_TopHead => undef,
|
||||
}, shift;
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
|
||||
=item msgs
|
||||
|
||||
I<Instance method.>
|
||||
Return all messages that we logged, in order.
|
||||
Every message is a string beginning with its type followed by C<": ">;
|
||||
the current types are C<debug>, C<warning>, and C<error>.
|
||||
|
||||
=cut
|
||||
|
||||
sub msgs {
|
||||
@{shift->{MPI_Msgs}};
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
|
||||
=item errors
|
||||
|
||||
I<Instance method.>
|
||||
Return all error messages that we logged, in order.
|
||||
A convenience front-end onto msgs().
|
||||
|
||||
=cut
|
||||
|
||||
sub errors {
|
||||
grep /^error: /, @{shift->{MPI_Msgs}};
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
|
||||
=item warnings
|
||||
|
||||
I<Instance method.>
|
||||
Return all warning messages that we logged, in order.
|
||||
A convenience front-end onto msgs().
|
||||
|
||||
=cut
|
||||
|
||||
sub warnings {
|
||||
grep /^warning: /, @{shift->{MPI_Msgs}};
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
|
||||
=item top_head
|
||||
|
||||
I<Instance method.>
|
||||
Return the topmost header, if we were able to read it.
|
||||
This may be useful if the parse fails.
|
||||
|
||||
=cut
|
||||
|
||||
sub top_head {
|
||||
my ($self, $head) = @_;
|
||||
$self->{MPI_TopHead} = $head if @_ > 1;
|
||||
$self->{MPI_TopHead};
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#------------------------------
|
||||
#
|
||||
# PRIVATE: FOR USE DURING PARSING ONLY!
|
||||
#
|
||||
|
||||
#------------------------------
|
||||
#
|
||||
# msg TYPE, MESSAGE...
|
||||
#
|
||||
# Take a message.
|
||||
#
|
||||
sub msg {
|
||||
my $self = shift;
|
||||
my $type = shift;
|
||||
my @args = map { defined($_) ? $_ : '<<undef>>' } @_;
|
||||
|
||||
push @{$self->{MPI_Msgs}}, ($type.": ".join('', @args)."\n");
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
#
|
||||
# level [+1|-1]
|
||||
#
|
||||
# Return current parsing level.
|
||||
#
|
||||
sub level {
|
||||
my ($self, $lvl) = @_;
|
||||
$self->{MPI_Level} += $lvl if @_ > 1;
|
||||
$self->{MPI_Level};
|
||||
}
|
||||
|
||||
#------------------------------
|
||||
#
|
||||
# indent
|
||||
#
|
||||
# Return indent for current parsing level.
|
||||
#
|
||||
sub indent {
|
||||
my ($self) = @_;
|
||||
' ' x $self->{MPI_Level};
|
||||
}
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
__END__
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<MIME::Tools>, L<MIME::Parser>
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Eryq (F<eryq@zeegee.com>), ZeeGee Software Inc (F<http://www.zeegee.com>).
|
||||
|
||||
All rights reserved. This program is free software; you can redistribute
|
||||
it and/or modify it under the same terms as Perl itself.
|
||||
|
||||
Reference in New Issue
Block a user