The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.