Test::CleanNamespaces(3)

NAME
Test::CleanNamespaces - Check for uncleaned imports

VERSION
version 0.18

SYNOPSIS
    use strict;
    use warnings;
    use Test::CleanNamespaces;

    all_namespaces_clean;

DESCRIPTION
This module lets you check your module's namespaces for imported functions you might have forgotten to remove with namespace::autoclean or namespace::clean and are therefore available to be called as methods, which usually isn't want you want.

FUNCTIONS
All functions are exported by default.

  namespaces_clean
    namespaces_clean('YourModule', 'AnotherModule');

Tests every specified namespace for uncleaned imports. If the module couldn't be loaded it will be skipped.

  all_namespaces_clean
    all_namespaces_clean;

Runs "namespaces_clean" for all modules in your distribution.

METHODS
The exported functions are constructed using the the following methods. This is what you want to override if you're subclassing this module.

  build_namespaces_clean
    my $coderef = Test::CleanNamespaces->build_namespaces_clean;

Returns a coderef that will be exported as "namespaces_clean" (or the specified sub name, if provided).

  build_all_namespaces_clean
    my $coderef = Test::CleanNamespaces->build_all_namespaces_clean;

Returns a coderef that will be exported as "all_namespaces_clean". (or the specified sub name, if provided). It will use the "find_modules" method to get the list of modules to check.

  find_modules
    my @modules = Test::CleanNamespaces->find_modules;

Returns a list of modules in the current distribution. It'll search in "blib/", if it exists. "lib/" will be searched otherwise.

  builder
    my $builder = Test::CleanNamespaces->builder;

Returns the "Test::Builder" used by the test functions.

KNOWN ISSUES
Uncleaned imports from Mouse classes are incompletely detected, due to its lack of ability to return the correct method list -- it assumes that all subs are meant to be callable as methods unless they originated from (were imported by) one of: Mouse, Mouse::Role, Mouse::Util, Mouse::Util::TypeConstraints, Carp, Scalar::Util, or List::Util.

SEE ALSO

•   namespace::clean

•   namespace::autoclean

•   namespace::sweep

•   Sub::Exporter::ForMethods

•   Test::API

•   Sub::Name

•   Sub::Install

•   MooseX::MarkAsMethods

•   Dist::Zilla::Plugin::Test::CleanNamespaces

AUTHOR
Florian Ragwitz <rafl@debian.org>

COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Florian Ragwitz.

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

CONTRIBUTOR
Karen Etheridge <ether@cpan.org>