summaryrefslogtreecommitdiffstats
path: root/upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl')
-rw-r--r--upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl175
1 files changed, 175 insertions, 0 deletions
diff --git a/upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl b/upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl
new file mode 100644
index 00000000..8e77ee18
--- /dev/null
+++ b/upstream/archlinux/man3/TAP::Parser::ResultFactory.3perl
@@ -0,0 +1,175 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "TAP::Parser::ResultFactory 3perl"
+.TH TAP::Parser::ResultFactory 3perl 2024-02-11 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+TAP::Parser::ResultFactory \- Factory for creating TAP::Parser output objects
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 4
+\& use TAP::Parser::ResultFactory;
+\& my $token = {...};
+\& my $factory = TAP::Parser::ResultFactory\->new;
+\& my $result = $factory\->make_result( $token );
+.Ve
+.SH VERSION
+.IX Header "VERSION"
+Version 3.44
+.SS DESCRIPTION
+.IX Subsection "DESCRIPTION"
+This is a simple factory class which returns a TAP::Parser::Result subclass
+representing the current bit of test data from TAP (usually a single line).
+It is used primarily by TAP::Parser::Grammar. Unless you're subclassing,
+you probably won't need to use this module directly.
+.SS METHODS
+.IX Subsection "METHODS"
+.SS "Class Methods"
+.IX Subsection "Class Methods"
+\fR\f(CI\*(C`new\*(C'\fR\fI\fR
+.IX Subsection "new"
+.PP
+Creates a new factory class.
+\&\fINote:\fR You currently don't need to instantiate a factory in order to use it.
+.PP
+\fR\f(CI\*(C`make_result\*(C'\fR\fI\fR
+.IX Subsection "make_result"
+.PP
+Returns an instance the appropriate class for the test token passed in.
+.PP
+.Vb 1
+\& my $result = TAP::Parser::ResultFactory\->make_result($token);
+.Ve
+.PP
+Can also be called as an instance method.
+.PP
+\fR\f(CI\*(C`class_for\*(C'\fR\fI\fR
+.IX Subsection "class_for"
+.PP
+Takes one argument: \f(CW$type\fR. Returns the class for this \f(CW$type\fR, or \f(CW\*(C`croak\*(C'\fRs
+with an error.
+.PP
+\fR\f(CI\*(C`register_type\*(C'\fR\fI\fR
+.IX Subsection "register_type"
+.PP
+Takes two arguments: \f(CW$type\fR, \f(CW$class\fR
+.PP
+This lets you override an existing type with your own custom type, or register
+a completely new type, eg:
+.PP
+.Vb 4
+\& # create a custom result type:
+\& package MyResult;
+\& use strict;
+\& use base \*(AqTAP::Parser::Result\*(Aq;
+\&
+\& # register with the factory:
+\& TAP::Parser::ResultFactory\->register_type( \*(Aqmy_type\*(Aq => _\|_PACKAGE_\|_ );
+\&
+\& # use it:
+\& my $r = TAP::Parser::ResultFactory\->( { type => \*(Aqmy_type\*(Aq } );
+.Ve
+.PP
+Your custom type should then be picked up automatically by the TAP::Parser.
+.SH SUBCLASSING
+.IX Header "SUBCLASSING"
+Please see "SUBCLASSING" in TAP::Parser for a subclassing overview.
+.PP
+There are a few things to bear in mind when creating your own
+\&\f(CW\*(C`ResultFactory\*(C'\fR:
+.IP 1. 4
+The factory itself is never instantiated (this \fImay\fR change in the future).
+This means that \f(CW\*(C`_initialize\*(C'\fR is never called.
+.IP 2. 4
+\&\f(CW\*(C`TAP::Parser::Result\->new\*(C'\fR is never called, \f(CW$tokens\fR are reblessed.
+This \fIwill\fR change in a future version!
+.IP 3. 4
+TAP::Parser::Result subclasses will register themselves with
+TAP::Parser::ResultFactory directly:
+.Sp
+.Vb 2
+\& package MyFooResult;
+\& TAP::Parser::ResultFactory\->register_type( foo => _\|_PACKAGE_\|_ );
+.Ve
+.Sp
+Of course, it's up to you to decide whether or not to ignore them.
+.SS Example
+.IX Subsection "Example"
+.Vb 1
+\& package MyResultFactory;
+\&
+\& use strict;
+\&
+\& use MyResult;
+\&
+\& use base \*(AqTAP::Parser::ResultFactory\*(Aq;
+\&
+\& # force all results to be \*(AqMyResult\*(Aq
+\& sub class_for {
+\& return \*(AqMyResult\*(Aq;
+\& }
+\&
+\& 1;
+.Ve
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+TAP::Parser,
+TAP::Parser::Result,
+TAP::Parser::Grammar