config root man

Current Path : /compat/linux/proc/self/root/usr/opt/perl530/man/man3/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //compat/linux/proc/self/root/usr/opt/perl530/man/man3/TAP::Parser::SourceHandler.3

.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35)
.\"
.\" 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
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
.    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
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "TAP::Parser::SourceHandler 3"
.TH TAP::Parser::SourceHandler 3 "2019-10-24" "perl v5.30.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::SourceHandler \- Base class for different TAP source handlers
.SH "VERSION"
.IX Header "VERSION"
Version 3.42
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 2
\&  # abstract class \- don\*(Aqt use directly!
\&  # see TAP::Parser::IteratorFactory for general usage
\&
\&  # must be sub\-classed for use
\&  package MySourceHandler;
\&  use base \*(AqTAP::Parser::SourceHandler\*(Aq;
\&  sub can_handle    { return $confidence_level }
\&  sub make_iterator { return $iterator }
\&
\&  # see example below for more details
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
This is an abstract base class for TAP::Parser::Source handlers / handlers.
.PP
A \f(CW\*(C`TAP::Parser::SourceHandler\*(C'\fR does whatever is necessary to produce & capture
a stream of \s-1TAP\s0 from the \fIraw\fR source, and package it up in a
TAP::Parser::Iterator for the parser to consume.
.PP
\&\f(CW\*(C`SourceHandlers\*(C'\fR must implement the \fIsource detection & handling\fR interface
used by TAP::Parser::IteratorFactory.  At 2 methods, the interface is pretty
simple: \*(L"can_handle\*(R" and \*(L"make_source\*(R".
.PP
Unless you're writing a new TAP::Parser::SourceHandler, a plugin, or
subclassing TAP::Parser, you probably won't need to use this module directly.
.SH "METHODS"
.IX Header "METHODS"
.SS "Class Methods"
.IX Subsection "Class Methods"
\fI\f(CI\*(C`can_handle\*(C'\fI\fR
.IX Subsection "can_handle"
.PP
\&\fIAbstract method\fR.
.PP
.Vb 1
\&  my $vote = $class\->can_handle( $source );
.Ve
.PP
\&\f(CW$source\fR is a TAP::Parser::Source.
.PP
Returns a number between \f(CW0\fR & \f(CW1\fR reflecting how confidently the raw source
can be handled.  For example, \f(CW0\fR means the source cannot handle it, \f(CW0.5\fR
means it may be able to, and \f(CW1\fR means it definitely can.  See
\&\*(L"detect_source\*(R" in TAP::Parser::IteratorFactory for details on how this is used.
.PP
\fI\f(CI\*(C`make_iterator\*(C'\fI\fR
.IX Subsection "make_iterator"
.PP
\&\fIAbstract method\fR.
.PP
.Vb 1
\&  my $iterator = $class\->make_iterator( $source );
.Ve
.PP
\&\f(CW$source\fR is a TAP::Parser::Source.
.PP
Returns a new TAP::Parser::Iterator object for use by the TAP::Parser.
\&\f(CW\*(C`croak\*(C'\fRs on error.
.SH "SUBCLASSING"
.IX Header "SUBCLASSING"
Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview, and any
of the subclasses that ship with this module as an example.  What follows is
a quick overview.
.PP
Start by familiarizing yourself with TAP::Parser::Source and
TAP::Parser::IteratorFactory.  TAP::Parser::SourceHandler::RawTAP is
the easiest sub-class to use as an example.
.PP
It's important to point out that if you want your subclass to be automatically
used by TAP::Parser you'll have to and make sure it gets loaded somehow.
If you're using prove you can write an App::Prove plugin.  If you're
using TAP::Parser or TAP::Harness directly (e.g. through a custom script,
ExtUtils::MakeMaker, or Module::Build) you can use the \f(CW\*(C`config\*(C'\fR option
which will cause \*(L"load_sources\*(R" in TAP::Parser::IteratorFactory to load your
subclass).
.PP
Don't forget to register your class with
\&\*(L"register_handler\*(R" in TAP::Parser::IteratorFactory.
.SS "Example"
.IX Subsection "Example"
.Vb 1
\&  package MySourceHandler;
\&
\&  use strict;
\&
\&  use MySourceHandler; # see TAP::Parser::SourceHandler
\&  use TAP::Parser::IteratorFactory;
\&
\&  use base \*(AqTAP::Parser::SourceHandler\*(Aq;
\&
\&  TAP::Parser::IteratorFactory\->register_handler( _\|_PACKAGE_\|_ );
\&
\&  sub can_handle {
\&      my ( $class, $src ) = @_;
\&      my $meta   = $src\->meta;
\&      my $config = $src\->config_for( $class );
\&
\&      if ($config\->{accept_all}) {
\&          return 1.0;
\&      } elsif (my $file = $meta\->{file}) {
\&          return 0.0 unless $file\->{exists};
\&          return 1.0 if $file\->{lc_ext} eq \*(Aq.tap\*(Aq;
\&          return 0.9 if $file\->{shebang} && $file\->{shebang} =~ /^#!.+tap/;
\&          return 0.5 if $file\->{text};
\&          return 0.1 if $file\->{binary};
\&      } elsif ($meta\->{scalar}) {
\&          return 0.8 if $$raw_source_ref =~ /\ed\e.\e.\ed/;
\&          return 0.6 if $meta\->{has_newlines};
\&      } elsif ($meta\->{array}) {
\&          return 0.8 if $meta\->{size} < 5;
\&          return 0.6 if $raw_source_ref\->[0] =~ /foo/;
\&          return 0.5;
\&      } elsif ($meta\->{hash}) {
\&          return 0.6 if $raw_source_ref\->{foo};
\&          return 0.2;
\&      }
\&
\&      return 0;
\&  }
\&
\&  sub make_iterator {
\&      my ($class, $source) = @_;
\&      # this is where you manipulate the source and
\&      # capture the stream of TAP in an iterator
\&      # either pick a TAP::Parser::Iterator::* or write your own...
\&      my $iterator = TAP::Parser::Iterator::Array\->new([ \*(Aqfoo\*(Aq, \*(Aqbar\*(Aq ]);
\&      return $iterator;
\&  }
\&
\&  1;
.Ve
.SH "AUTHORS"
.IX Header "AUTHORS"
TAPx Developers.
.PP
Source detection stuff added by Steve Purkis
.SH "SEE ALSO"
.IX Header "SEE ALSO"
TAP::Object,
TAP::Parser,
TAP::Parser::Source,
TAP::Parser::Iterator,
TAP::Parser::IteratorFactory,
TAP::Parser::SourceHandler::Executable,
TAP::Parser::SourceHandler::Perl,
TAP::Parser::SourceHandler::File,
TAP::Parser::SourceHandler::Handle,
TAP::Parser::SourceHandler::RawTAP

Man Man