NAME

Test::Stream::Exporter - Declarative exporter for Test::Stream and friends.

DESCRIPTION

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

SYNOPSYS

use Test::Stream::Exporter;

# Export some named subs from the package
default_exports qw/foo bar baz/;
exports qw/fluxx buxx suxx/;

# Export some anonymous subs under specific names.
export         some_tool    => sub { ... };
default_export another_tool => sub { ... };

# Call this when you are done providing exports in order to cleanup your
# namespace.
Test::Stream::Exporter->cleanup;

# Hooks for import()

# Called before importing symbols listed in $args_ref. This gives you a
# chance to munge the arguments.
sub before_import {
    my $class = shift;
    my ($caller, $args_ref) = @_;
    ...

    return $stash; # For use in after_import, can be anything
}

# Chance to do something after import() is done
sub after_import {
    my $class = shift;
    my ($caller, $stash, @args) = @_;
    ...
}

EXPORTS

DEFAULT

import

Your class needs this to function as an exporter.

export NAME => sub { ... }
default_export NAME => sub { ... }

These are used to define exports that may not actually be subs in the current package.

exports qw/foo bar baz/
default_exports qw/foo bar baz/

These let you export package subs en mass.

AVAILABLE

export_to($from, $dest, @symbols)
$from->export_to($dest, @symbols)

Export from the $from package into the $dest package. The class-method form only works if the method has been imported into the $from package.

$meta = export_meta($package)
$meta = $package->export_meta()

Get the export meta object from the package. The class method form only works if the package has imported it.

HOOKS

SOURCE

The source code repository for Test::More can be found at http://github.com/Test-More/test-more/.

MAINTAINER

Chad Granum <exodist@cpan.org>

AUTHORS

The following people have all contributed to the Test-More dist (sorted using VIM's sort function).

Chad Granum <exodist@cpan.org>
Fergal Daly <fergal@esatclear.ie>>
Mark Fowler <mark@twoshortplanks.com>
Michael G Schwern <schwern@pobox.com>
唐鳳

COPYRIGHT

There has been a lot of code migration between modules, here are all the original copyrights together:

Test::Stream
Test::Stream::Tester

Copyright 2014 Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

Test::Simple
Test::More
Test::Builder

Originally authored by Michael G Schwern <schwern@pobox.com> with much inspiration from Joshua Pritikin's Test module and lots of help from Barrie Slaymaker, Tony Bowden, blackstar.co.uk, chromatic, Fergal Daly and the perl-qa gang.

Idea by Tony Bowden and Paul Johnson, code by Michael G Schwern <schwern@pobox.com>, wardrobe by Calvin Klein.

Copyright 2001-2008 by Michael G Schwern <schwern@pobox.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

Test::use::ok

To the extent possible under law, 唐鳳 has waived all copyright and related or neighboring rights to Test-use-ok.

This work is published from Taiwan.

http://creativecommons.org/publicdomain/zero/1.0

Test::Tester

This module is copyright 2005 Fergal Daly <fergal@esatclear.ie>, some parts are based on other people's work.

Under the same license as Perl itself

See http://www.perl.com/perl/misc/Artistic.html

Test::Builder::Tester

Copyright Mark Fowler <mark@twoshortplanks.com> 2002, 2004.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.