From: Robert 'phaylon' Sedlacek Date: Tue, 3 Mar 2009 16:20:31 +0000 (+0100) Subject: updated README X-Git-Tag: 0.11~2 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=44c20e051c0c192b4a092afbf5f160a9e8fbb9ea;p=p5sagit%2Fnamespace-clean.git updated README --- diff --git a/README b/README index 3d06797..6f2aca5 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME namespace::clean - Keep imports and functions out of your namespace VERSION - 0.10 + 0.11 SYNOPSIS package Foo; @@ -91,10 +91,41 @@ DESCRIPTION Same goes for Moose::Role. + Cleaning other packages + You can tell "namespace::clean" that you want to clean up another + package instead of the one importing. To do this you have to pass in the + "-cleanee" option like this: + + package My::MooseX::namespace::clean; + use strict; + + use namespace::clean (); # no cleanup, just load + + sub import { + namespace::clean->import( + -cleanee => scalar(caller), + -except => 'meta', + ); + } + + If you don't care about "namespace::clean"s discover-and-"-except" + logic, and just want to remove subroutines, try "clean_subroutines". + METHODS You shouldn't need to call any of these. Just "use" the package at the appropriate place. + clean_subroutines + This exposes the actual subroutine-removal logic. + + namespace::clean->clean_subroutines($cleanee, qw( subA subB )); + + will remove "subA" and "subB" from $cleanee. Note that this will remove + the subroutines immediately and not wait for scope end. If you want to + have this effect at a specific time (e.g. "namespace::clean" acts on + scope compile end) it is your responsibility to make sure it runs at + that time. + import Makes a snapshot of the current defined functions and installs a B::Hooks::EndOfScope hook in the current scope to invoke the cleanups.