- 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
This commit is contained in:
parent
de2501968e
commit
10219f7ed5
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b8cb5d60e8f3a0a319bbe77e9308812d8eecd7ebfbaa6acd39c10ff616861c1f
|
|
||||||
size 15750
|
|
3
namespace-clean-0.20.tar.gz
Normal file
3
namespace-clean-0.20.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:35fc7e4d23e4132717991090aedb4278b3e1a0f2be243e38c996048815435ad5
|
||||||
|
size 17257
|
@ -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
|
Wed Dec 1 13:34:02 UTC 2010 - coolo@novell.com
|
||||||
|
|
||||||
|
@ -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.
|
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -15,49 +15,116 @@
|
|||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
# norootforbuild
|
|
||||||
|
|
||||||
Name: perl-namespace-clean
|
Name: perl-namespace-clean
|
||||||
%define cpan_name namespace-clean
|
Version: 0.20
|
||||||
Summary: Keep imports and functions out of your namespace
|
|
||||||
Version: 0.18
|
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPL+ or Artistic
|
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/
|
Url: http://search.cpan.org/dist/namespace-clean/
|
||||||
#Source: http://www.cpan.org/modules/by-module/namespace/namespace-clean-%{version}.tar.gz
|
Group: Development/Libraries/Perl
|
||||||
Source: %{cpan_name}-%{version}.tar.bz2
|
#Source: http://www.cpan.org/authors/id/F/FL/FLORA/namespace-clean-%{version}.tar.gz
|
||||||
# would require Test::More >= 0.88 (done_testing)
|
Source: %{cpan_name}-%{version}.tar.gz
|
||||||
%if 0%{?suse_version} < 1120
|
|
||||||
Patch0: %{name}_Build_n_Test.patch
|
|
||||||
%endif
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
%{perl_requires}
|
|
||||||
BuildRequires: perl
|
BuildRequires: perl
|
||||||
BuildRequires: perl-macros
|
BuildRequires: perl-macros
|
||||||
BuildRequires: perl(B::Hooks::EndOfScope) >= 0.07
|
BuildRequires: perl(B::Hooks::EndOfScope) >= 0.07
|
||||||
BuildRequires: perl(constant)
|
BuildRequires: perl(constant)
|
||||||
BuildRequires: perl(Exporter)
|
BuildRequires: perl(Exporter)
|
||||||
BuildRequires: perl(Package::Stash) >= 0.03
|
BuildRequires: perl(Package::Stash) >= 0.22
|
||||||
BuildRequires: perl(Sub::Identify) >= 0.04
|
BuildRequires: perl(Sub::Identify) >= 0.04
|
||||||
BuildRequires: perl(Sub::Name) >= 0.04
|
BuildRequires: perl(Sub::Name) >= 0.04
|
||||||
BuildRequires: perl(vars)
|
BuildRequires: perl(vars)
|
||||||
Requires: perl(B::Hooks::EndOfScope) >= 0.07
|
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::Identify) >= 0.04
|
||||||
Requires: perl(Sub::Name) >= 0.04
|
Requires: perl(Sub::Name) >= 0.04
|
||||||
Requires: perl(vars)
|
Requires: perl(vars)
|
||||||
|
%{perl_requires}
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Keeping packages clean
|
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
|
%prep
|
||||||
%setup -q -n %{cpan_name}-%{version}
|
%setup -q -n %{cpan_name}-%{version}
|
||||||
# would require Test::More >= 0.88 (done_testing)
|
|
||||||
%if 0%{?suse_version} < 1120
|
|
||||||
%patch0 -p1
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
%{__perl} Makefile.PL INSTALLDIRS=vendor
|
||||||
@ -68,18 +135,14 @@ Keeping packages clean
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
%perl_make_install
|
%perl_make_install
|
||||||
# do not perl_process_packlist (noarch)
|
%perl_process_packlist
|
||||||
# remove .packlist file
|
|
||||||
%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch
|
|
||||||
# remove perllocal.pod file
|
|
||||||
%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib
|
|
||||||
%perl_gen_filelist
|
%perl_gen_filelist
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
%{__rm} -rf $RPM_BUILD_ROOT
|
%{__rm} -rf %{buildroot}
|
||||||
|
|
||||||
%files -f %{name}.files
|
%files -f %{name}.files
|
||||||
%defattr(-,root,root,-)
|
%defattr(644,root,root,755)
|
||||||
%doc Changes dist.ini LICENSE META.json README
|
%doc Changes LICENSE README
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user