From 10219f7ed510c3390d14f254dfaddfc333571caeeb9dcdbf5a2a270e07d7c2b3 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 31 Mar 2011 08:28:13 +0000 Subject: [PATCH] - update to 0.20 - Bump Package::Stash dependency to 0.22 to pull in a bugfix in Package::Stash::XS 0.19. - Port to the new Package::Stash 0.18 API and depend on it. - Don't rely on package::stash's remove_package_symbol implementation (doy). OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl-namespace-clean?expand=0&rev=5 --- namespace-clean-0.18.tar.bz2 | 3 - namespace-clean-0.20.tar.gz | 3 + perl-namespace-clean.changes | 10 +++ perl-namespace-clean.spec | 119 ++++++++++++++++++++++++++--------- 4 files changed, 104 insertions(+), 31 deletions(-) delete mode 100644 namespace-clean-0.18.tar.bz2 create mode 100644 namespace-clean-0.20.tar.gz diff --git a/namespace-clean-0.18.tar.bz2 b/namespace-clean-0.18.tar.bz2 deleted file mode 100644 index a461a5d..0000000 --- a/namespace-clean-0.18.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8cb5d60e8f3a0a319bbe77e9308812d8eecd7ebfbaa6acd39c10ff616861c1f -size 15750 diff --git a/namespace-clean-0.20.tar.gz b/namespace-clean-0.20.tar.gz new file mode 100644 index 0000000..428c2ff --- /dev/null +++ b/namespace-clean-0.20.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35fc7e4d23e4132717991090aedb4278b3e1a0f2be243e38c996048815435ad5 +size 17257 diff --git a/perl-namespace-clean.changes b/perl-namespace-clean.changes index 0f97e6e..faa2e02 100644 --- a/perl-namespace-clean.changes +++ b/perl-namespace-clean.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Mar 31 08:09:45 UTC 2011 - coolo@novell.com + +- update to 0.20 + - Bump Package::Stash dependency to 0.22 to pull in a bugfix in + Package::Stash::XS 0.19. + - Port to the new Package::Stash 0.18 API and depend on it. + - Don't rely on package::stash's remove_package_symbol implementation + (doy). + ------------------------------------------------------------------- Wed Dec 1 13:34:02 UTC 2010 - coolo@novell.com diff --git a/perl-namespace-clean.spec b/perl-namespace-clean.spec index 176aebe..2d83f0a 100644 --- a/perl-namespace-clean.spec +++ b/perl-namespace-clean.spec @@ -1,5 +1,5 @@ # -# spec file for package perl-namespace-clean (Version 0.18) +# spec file for package perl-namespace-clean (Version 0.20) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -15,49 +15,116 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild - Name: perl-namespace-clean -%define cpan_name namespace-clean -Summary: Keep imports and functions out of your namespace -Version: 0.18 +Version: 0.20 Release: 1 License: GPL+ or Artistic -Group: Development/Libraries/Perl +%define cpan_name namespace-clean +Summary: Keep imports and functions out of your namespace Url: http://search.cpan.org/dist/namespace-clean/ -#Source: http://www.cpan.org/modules/by-module/namespace/namespace-clean-%{version}.tar.gz -Source: %{cpan_name}-%{version}.tar.bz2 -# would require Test::More >= 0.88 (done_testing) -%if 0%{?suse_version} < 1120 -Patch0: %{name}_Build_n_Test.patch -%endif +Group: Development/Libraries/Perl +#Source: http://www.cpan.org/authors/id/F/FL/FLORA/namespace-clean-%{version}.tar.gz +Source: %{cpan_name}-%{version}.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{perl_requires} BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(B::Hooks::EndOfScope) >= 0.07 BuildRequires: perl(constant) BuildRequires: perl(Exporter) -BuildRequires: perl(Package::Stash) >= 0.03 +BuildRequires: perl(Package::Stash) >= 0.22 BuildRequires: perl(Sub::Identify) >= 0.04 BuildRequires: perl(Sub::Name) >= 0.04 BuildRequires: perl(vars) Requires: perl(B::Hooks::EndOfScope) >= 0.07 -Requires: perl(Package::Stash) >= 0.03 +Requires: perl(Package::Stash) >= 0.22 Requires: perl(Sub::Identify) >= 0.04 Requires: perl(Sub::Name) >= 0.04 Requires: perl(vars) +%{perl_requires} %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. + + 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. %prep %setup -q -n %{cpan_name}-%{version} -# would require Test::More >= 0.88 (done_testing) -%if 0%{?suse_version} < 1120 -%patch0 -p1 -%endif %build %{__perl} Makefile.PL INSTALLDIRS=vendor @@ -68,18 +135,14 @@ Keeping packages clean %install %perl_make_install -# do not perl_process_packlist (noarch) -# remove .packlist file -%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch -# remove perllocal.pod file -%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib +%perl_process_packlist %perl_gen_filelist %clean -%{__rm} -rf $RPM_BUILD_ROOT +%{__rm} -rf %{buildroot} %files -f %{name}.files -%defattr(-,root,root,-) -%doc Changes dist.ini LICENSE META.json README +%defattr(644,root,root,755) +%doc Changes LICENSE README %changelog