1Test::Stream::Exporter(U3s)er Contributed Perl DocumentatTieosnt::Stream::Exporter(3)
2
3
4

NAME

6       Test::Stream::Exporter - Declarative exporter for Test::Stream and
7       friends.
8

DEPRECATED

10       This distribution is deprecated in favor of Test2, Test2::Suite, and
11       Test2::Workflow.
12
13       See Test::Stream::Manual::ToTest2 for a conversion guide.
14

DESCRIPTION

16       Test::Stream::Exporter is an internal implementation of some key
17       features from Exporter::Declare. This is a much more powerful exporting
18       tool than Exporter. This package is used to easily manage complicated
19       export logic across Test::Stream and friends.
20

SYNOPSIS

22           use Test::Stream::Exporter;
23
24           # Export some named subs from the package
25           default_exports qw/foo bar baz/;
26           exports qw/fluxx buxx suxx/;
27
28           # Export some anonymous subs under specific names.
29           export         some_tool    => sub { ... };
30           default_export another_tool => sub { ... };
31
32           # Call this when you are done providing exports in order to cleanup your
33           # namespace.
34           no Test::Stream::Exporter;
35
36           ...;
37

CONTROLLING IMPORTS

39   IMPORTING SUBS WITH ALTERNATE NAMES
40       Note: If you import Test::Stream::Exporter functions under alternative
41       names, "no Test::Stream::Exporter;" will not find and remove them like
42       it normally would.
43
44       The rename syntax is borrowed from Exporter::Declare, which borrowed it
45       from Sub::Exporter.
46
47           use Some::Exporter an_export => {-as => 'new_name'}, other_export => {-as => 'other_name'};
48
49       You can also prefix and/or postfix to the names:
50
51           use Some::Exporter an_export => {-preifx => 'my_', postfix '_tool'};
52
53           # Now use it:
54           my_an_export_tool(...);
55
56   IMPORTING ALL SUBS
57       You can use "-all" to import ALL subs exported by a module.
58
59           use Some::Exporter '-all';
60
61       This can be combined with aliasing:
62
63           use Some::Exporter '-all', foo => { -as => 'my_foo' };
64
65       In this example "foo" will be imported as 'my_foo', all other subs will
66       be imported with their original names. Order is not important here.
67
68   IMPORTING DEFAULTS PLUS
69       You can use "-default" to import all default subs, then list others you
70       want to import as well.
71
72           use Some::Exporter '-default', qw/and_this and_that/;
73
74       If you want to import all the defaults AND rename one or more:
75
76           use Some::Exporter '-default', foo => { -as => 'my_foo' };
77
78       In this example foo() will be imported as my_foo(). All other defaults
79       will also be imported, but with their original names. Order is not
80       important here.
81

CUSTOMIZING AN IMPORT METHOD

83       Sometimes you need to make a custom import method, but you still want
84       to use the exporter tool to manage exports. here is how you do it:
85
86           use Test::Stream::Exporter qw/export exports export_from/;
87           export foo => sub { 'foo' };
88           export qw/bar baz/;
89
90           sub import {
91               my $class = shift;
92               my @exports = @_;
93
94               # Do whatever you need to
95               ...
96
97               # Now go ahead and do the exporting with your list
98               my $caller = caller;
99               export_from($class, $caller, \@exports);
100           }
101
102           # This will cleanup the namespace, including 'export_from', do you need to
103           # do it AFTER your import method.
104           no Test::Stream::Exporter;
105
106           sub bar { 'bar' }
107           sub baz { 'baz' }
108
109           1;
110

EXPORTS

112   DEFAULT
113       METHODS
114
115       $class->import(@list)
116           Your class needs this to function as an exporter.
117
118       FUNCTIONS
119
120       Note: All of thease are removed by default when you run "no
121       Test::Stream::Exporter;"
122
123       export NAME => sub { ... }
124       default_export NAME => sub { ... }
125           These are used to define exports that may not actually be subs in
126           the current package.
127
128       exports qw/foo bar baz/
129       default_exports qw/foo bar baz/
130           These let you export package subs en mass.
131
132   OTHER AVAILABLE EXPORTS
133       METHODS
134
135       $class->export_to($dest)
136       $class->export_to($dest, \@symbols)
137           Export from the exporter class into the $dest package. The seconond
138           argument is optional, if it is omitted the default export list will
139           be used. The second argument must be an arrayref with export names.
140
141       FUNCTIONS
142
143       Note: All of thease are removed by default when you run "no
144       Test::Stream::Exporter;"
145
146       export_from($from, $to)
147       export_from($from, $to, \@symbols)
148           This will export all the specified symbols from the $from package
149           to the $to package.
150

SOURCE

152       The source code repository for Test::Stream can be found at
153       http://github.com/Test-More/Test-Stream/.
154

MAINTAINERS

156       Chad Granum <exodist@cpan.org>
157

AUTHORS

159       Chad Granum <exodist@cpan.org>
160       Kent Fredric <kentnl@cpan.org>
161
163       Copyright 2015 Chad Granum <exodist7@gmail.com>.
164
165       This program is free software; you can redistribute it and/or modify it
166       under the same terms as Perl itself.
167
168       See http://dev.perl.org/licenses/
169
170
171
172perl v5.36.0                      2023-01-20         Test::Stream::Exporter(3)
Impressum