diff --git a/perl-namespace-clean.spec b/perl-namespace-clean.spec index 2d83f0a..122f70f 100644 --- a/perl-namespace-clean.spec +++ b/perl-namespace-clean.spec @@ -45,83 +45,16 @@ Requires: perl(vars) %description Keeping packages clean - When you define a function, or import one, into a Perl package, it will - naturally also be available as a method. This does not per se cause - problems, but it can complicate subclassing and, for example, plugin - classes that are included via multiple inheritance by loading them as - base classes. +When you define a function, or import one, into a Perl package, it will +naturally also be available as a method. This does not per se cause +problems, but it can complicate subclassing and, for example, plugin +classes that are included via multiple inheritance by loading them as +base classes. - The 'namespace::clean' pragma will remove all previously declared or - imported symbols at the end of the current package's compile cycle. - Functions called in the package itself will still be bound by their - name, but they won't show up as methods on your class or instances. - - By unimporting via 'no' you can tell 'namespace::clean' to start - collecting functions for the next 'use namespace::clean;' - specification. - - You can use the '-except' flag to tell 'namespace::clean' that you - don't want it to remove a certain function or method. A common use - would be a module exporting an 'import' method along with some - functions: - - use ModuleExportingImport; - use namespace::clean -except => [qw( import )]; - - If you just want to '-except' a single sub, you can pass it directly. - For more than one value you have to use an array reference. - -Explicitely removing functions when your scope is compiled - It is also possible to explicitely tell 'namespace::clean' what - packages to remove when the surrounding scope has finished compiling. - Here is an example: - - package Foo; - use strict; - - # blessed NOT available - - sub my_class { - use Scalar::Util qw( blessed ); - use namespace::clean qw( blessed ); - - # blessed available - return blessed shift; - } - - # blessed NOT available - -Moose - When using 'namespace::clean' together with the Moose manpage you want - to keep the installed 'meta' method. So your classes should look like: - - package Foo; - use Moose; - use namespace::clean -except => 'meta'; - ... - - Same goes for the Moose::Role manpage. - -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 the /clean_subroutines - manpage. +The 'namespace::clean' pragma will remove all previously declared or +imported symbols at the end of the current package's compile cycle. +Functions called in the package itself will still be bound by their +name, but they won't show up as methods on your class or instances. %prep %setup -q -n %{cpan_name}-%{version} @@ -139,7 +72,7 @@ Cleaning other packages %perl_gen_filelist %clean -%{__rm} -rf %{buildroot} +%{?buildroot:%__rm -rf "%{buildroot}"} %files -f %{name}.files %defattr(644,root,root,755)