From ad1afb9eeea4198bc96ca790da837b19bf2a4bd1 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Fri, 16 Apr 2010 06:47:20 +0100 Subject: [PATCH] Added Module::Pluggable --- .../libmodule-pluggable-perl-3.8/Changes | 213 ++++++++++++ .../libmodule-pluggable-perl-3.8/INSTALL | 12 + .../libmodule-pluggable-perl-3.8/MANIFEST | 66 ++++ .../libmodule-pluggable-perl-3.8/MANIFEST.SKIP | 12 + .../libmodule-pluggable-perl-3.8/META.yml | 15 + .../libmodule-pluggable-perl-3.8/Makefile.PL | 49 +++ .../libmodule-pluggable-perl-3.8/README | 238 +++++++++++++ .../libmodule-pluggable-perl-3.8/debian/changelog | 106 ++++++ .../libmodule-pluggable-perl-3.8/debian/compat | 1 + .../libmodule-pluggable-perl-3.8/debian/control | 19 ++ .../libmodule-pluggable-perl-3.8/debian/copyright | 19 ++ .../libmodule-pluggable-perl-3.8/debian/rules | 73 ++++ .../libmodule-pluggable-perl-3.8/debian/watch | 2 + .../lib/Devel/InnerPackage.pm | 128 +++++++ .../lib/Module/Pluggable.pm | 355 ++++++++++++++++++++ .../lib/Module/Pluggable/Object.pm | 351 +++++++++++++++++++ .../libmodule-pluggable-perl-3.8/t/01use.t | 9 + .../libmodule-pluggable-perl-3.8/t/02alsoworks.t | 42 +++ .../libmodule-pluggable-perl-3.8/t/02works.t | 42 +++ .../libmodule-pluggable-perl-3.8/t/02works_taint.t | 41 +++ .../libmodule-pluggable-perl-3.8/t/03diffname.t | 30 ++ .../libmodule-pluggable-perl-3.8/t/04acmedir.t | 30 ++ .../t/04acmedir_single.t | 30 ++ .../libmodule-pluggable-perl-3.8/t/04acmepath.t | 30 ++ .../t/04acmepath_single.t | 30 ++ .../libmodule-pluggable-perl-3.8/t/05postpath.t | 31 ++ .../libmodule-pluggable-perl-3.8/t/06multipath.t | 33 ++ .../libmodule-pluggable-perl-3.8/t/07instantiate.t | 40 +++ .../libmodule-pluggable-perl-3.8/t/08nothing.t | 30 ++ .../libmodule-pluggable-perl-3.8/t/09require.t | 29 ++ .../libmodule-pluggable-perl-3.8/t/10innerpack.t | 35 ++ .../t/10innerpack_inner.t | 34 ++ .../t/10innerpack_noinner.t | 34 ++ .../t/10innerpack_override.t | 34 ++ .../t/10innerpack_super.t | 29 ++ .../libmodule-pluggable-perl-3.8/t/11usetwice.t | 44 +++ .../libmodule-pluggable-perl-3.8/t/12only.t | 64 ++++ .../libmodule-pluggable-perl-3.8/t/12onlyarray.t | 65 ++++ .../libmodule-pluggable-perl-3.8/t/12onlyregex.t | 65 ++++ .../libmodule-pluggable-perl-3.8/t/13except.t | 68 ++++ .../libmodule-pluggable-perl-3.8/t/13exceptarray.t | 68 ++++ .../libmodule-pluggable-perl-3.8/t/13exceptregex.t | 68 ++++ .../libmodule-pluggable-perl-3.8/t/14package.t | 34 ++ .../libmodule-pluggable-perl-3.8/t/15topicsafe.t | 16 + .../t/16different_extension.t | 42 +++ .../t/17devel_inner_package.t | 15 + .../t/18skipped_package.t | 11 + .../t/19can_ok_clobber.t | 50 +++ .../libmodule-pluggable-perl-3.8/t/20dodgy_files.t | 84 +++++ .../libmodule-pluggable-perl-3.8/t/21editor_junk.t | 53 +++ .../t/acme/Acme/MyTest/Plugin/Foo.pm | 9 + .../t/lib/Acme/MyTest/Plugin/Foo.pm | 9 + .../t/lib/EditorJunk/Plugin/Bar.pm | 9 + .../t/lib/EditorJunk/Plugin/Bar.pm.swo | 9 + .../t/lib/EditorJunk/Plugin/Bar.pm.swp | 9 + .../t/lib/EditorJunk/Plugin/Bar.pm~ | 9 + .../t/lib/EditorJunk/Plugin/Foo.pm | 9 + .../t/lib/ExtTest/Plugin/Bar.plugin | 9 + .../t/lib/ExtTest/Plugin/Foo.plugin | 9 + .../t/lib/ExtTest/Plugin/Quux/Foo.plugin | 9 + .../t/lib/InnerTest/Plugin/Foo.pm | 17 + .../t/lib/MyOtherTest/Plugin/Bar.pm | 5 + .../t/lib/MyOtherTest/Plugin/Foo.pm | 5 + .../t/lib/MyOtherTest/Plugin/Quux.pm | 5 + .../t/lib/MyOtherTest/Plugin/Quux/Foo.pm | 5 + .../t/lib/MyTest/Extend/Plugin/Bar.pm | 17 + .../t/lib/MyTest/Plugin/Bar.pm | 9 + .../t/lib/MyTest/Plugin/Foo.pm | 10 + .../t/lib/MyTest/Plugin/Quux/Foo.pm | 9 + .../t/lib/No/Middle.pm | 14 + .../t/lib/OddTest/Plugin/Foo.pm | 5 + .../libmodule-pluggable-perl-3.8/t/lib/TA/C/A/I.pm | 13 + .../libmodule-pluggable-perl_3.8-1.diff.gz | Bin 0 -> 3002 bytes .../libmodule-pluggable-perl_3.8-1.dsc | 27 ++ .../libmodule-pluggable-perl_3.8-1maemo1.diff.gz | Bin 0 -> 3043 bytes .../libmodule-pluggable-perl_3.8-1maemo1.dsc | 13 + ...bmodule-pluggable-perl_3.8-1maemo1_i386.changes | 20 ++ .../libmodule-pluggable-perl_3.8.orig.tar.gz | Bin 0 -> 16889 bytes .../libmodule-pluggable-perl_3.8-1maemo1_all.deb | Bin 0 -> 23308 bytes scripts/edit-release.pl | 2 +- 80 files changed, 3284 insertions(+), 1 deletion(-) create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Changes create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/INSTALL create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST.SKIP create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/META.yml create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Makefile.PL create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/README create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/changelog create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/compat create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/control create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/copyright create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/rules create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/watch create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Devel/InnerPackage.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable/Object.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/01use.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02alsoworks.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works_taint.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/03diffname.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir_single.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath_single.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/05postpath.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/06multipath.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/07instantiate.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/08nothing.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/09require.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_inner.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_noinner.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_override.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_super.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/11usetwice.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12only.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyarray.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyregex.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13except.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptarray.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptregex.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/14package.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/15topicsafe.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/16different_extension.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/17devel_inner_package.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/18skipped_package.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/19can_ok_clobber.t create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/20dodgy_files.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/21editor_junk.t create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/acme/Acme/MyTest/Plugin/Foo.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/Acme/MyTest/Plugin/Foo.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swo create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swp create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm~ create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Foo.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Bar.plugin create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Foo.plugin create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Quux/Foo.plugin create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/InnerTest/Plugin/Foo.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Bar.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Foo.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux/Foo.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Extend/Plugin/Bar.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Bar.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Foo.pm create mode 100755 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Quux/Foo.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/No/Middle.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/OddTest/Plugin/Foo.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/TA/C/A/I.pm create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.diff.gz create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.dsc create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1.diff.gz create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1.dsc create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_i386.changes create mode 100644 deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8.orig.tar.gz create mode 100644 deb/pool/main/libm/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_all.deb diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Changes b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Changes new file mode 100755 index 0000000..ec8b992 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Changes @@ -0,0 +1,213 @@ +2008-03-16 - 3.8 + Set INSTALLDIRS correctly in Makefile.PL + A couple of other fixups to play nicely in Core + +2008-03-12 - 3.7 + Ignore editor cruft by default (Dave Rolsky and Matt Trout) + Doc patches (Matt Trout) + Prevent prototype mismatch warnings under Error.pm (Christopher H. Laco) + Don't pick up the ::SUPER pseudo stash in 5.8 (Alex Vandiver) + Make things work under VOS (Nicholas Clark and Paul Green) + Fix warning under Devel::Cover (Brian Cassidy) + Make tests run under Taint again + Get rid of Build.PL + +2007-04-07 - 3.6 + Include blead perl patch from Craig Berry that gives better + Module::Pluggable::Object::search_paths portability as + prompted by VMS test failures. + +2007-01-29 - 3.5 + Patch from Audrey Tang to prevent clobbering of $@ + +2006-11-27 - 3.4 + Make sure we don't fail taint checking when other + Module::Pluggable::* modules are installed. + +2006-11-24 - 3.3 + Few more patches from Jos Boumans to get ready for CORE + +2006-11-15 - 3.2 + Remove Class::Inspector dependency and inline code + Prepare for assimilation into CORE + +2006-07-11 - 3.1 + Force Test::More version to be latest which stops it trampling on $_ + Use Class::Inspector tests to check to see Package is loaded thus + preventing incompatability problems introduced by last patch. + +2006-06-07 - 3.01 + Fix from Brian Cassidy in Devel::InnerPackage + +2006-06-06 - 3.0 + Big refactor to split stuff up into more manageable pieces + + +2006-04-05 - 2.98 + Allow the ability to provide the file matching regex + +2006-02-06 - 2.97 + Patch from Ricardo Signes to fix bug where File::Find + is not topic-safe in 5.6.1 + +2005-09-01 - 2.96 + Patch from Alex Vandiver to sort an edge case where the package + stash to contain "::" + +2005-07-30 - 2.95 + Patch from Alex Vandiver to sort ::ISA::CACHE issues. + More patches from Christopher H. Laco to sort out only and except + and to fix calling search_path( add => ... ) before plugins() + +2005-07-09 - 2.9 More Tainting fixes + Patches from Christopher H. Laco and Joe McMahon to do more taint fixing + Suggestion from Christopher H. Laco to do a can check before instatiating + +2005-03-18 - 2.8 Minor fixes + + Patch from Marcus Thiesen to fix so ISA cache magic + Patch from Anthony D. Urso to get M::P to work under taint + + +2005-02-14 - 2.7 Allow redefinition of search_path + + A patch from Barbie to allow you to do + + $self->search_path( add => 'Some::Path' ); + $self->search_path( new => 'Some::New::Path' ); + + +2005-02-02 - 2.6 Problems under tests + + Richard Clamp diagnosed a problem as being due to the + fact that we exclude anything not from blib if there + was blib.pm is %INC. Of course if the module being + tested used another module that used Module::Pluggable + then the second module would fail. + + Fixed it by checking to see if the caller had (^|/)blib/ + in their filename. + +2004-12-20 - 2.5 'Inspiration' from Module::Pluggable::Fast + + Noticed Sebastian Riedel's curious Module::Pluggable::Fast + which appears to break API backwards compatability in order + to inline an explicit call to 'new'. It has no tests. + + A quick benchmark showed that it was about 10% faster + because of cruft that had accumulated over time. So + a few quick changes and now Module::Pluggable is only + 3% slower. Which is nice. + + Also added a patch from Barbie to fix things under Windows. + +2004-12-15 - 2.4 Bug fix + + There seemed to be some irregularities in how 5.8.1 worked + with the list_packages method. Fixed thanks to Schwern, + Michael Cummings and Jos Boumans. + + Added some more documentation. + + Added ability to specify except and only as regexes. + +2004-10-27 - 2.3 Niceties + + Allow you to explicitly stop looking for inner packages. + Made it nicer to have single element search_dirs and search_paths. + + +2004-10-08 - 2.2 Dieting + + Thanks to suggestion and patches from Adam Kennedy + Module::Pluggable has dumped some weight and got rid of + the none Core dependecies of File::Find::Rule and + UNIVERSAL::require + + +2004-08-25 - 2.1 Small buglette + + Require inner packages when appropriate. This helps towards + making things work with PAR. Thanks to Brian Cassidy. + + Never released. + +2004-08-19 - 2.0 Working inner packages + + As long as you have require or instantiate set then we'll also find + inner packages. Why I didn't fix this way back in 1.3 I don't know. + +2004-07-18 - 1.9 Add 'package' option + + This lets you install a method in another package's + namespace. Thanks to Simon Cozens. + +2004-07-08 - 1.8 Fix those two options + + They worked before but now they're more robust. + +2004-07-07 - 1.7 Add support for limiting plugins + + Added 'only' and ''except' options. + +2004-06-03 - 1.6 Add a traditional Makefile.PL + + Even though I think Module::Build is much better. + +2004-05-25 - 1.5 Build.PL stupidity + + Must add prereqs. Doh. + +2004-05-25 - 1.4 Multiple instances + + Made it so you could use it twice in the same package. + Removed the inner package stuff inorder to fix it properly. + +2004-05-06 - 1.3 Ability to search in inner packages + + Simon Cozens donated some code to allow us to search + inner packages. + +2004-05-06 - 1.2 Fix minor buglet + + Apply a patch from Tom Insam to fix requiring without + instantiating and make require failures more verbose. + +2003-12-15 - 1.11 Update MANIFEST. + + So that make dist works properly. + +2003-12-15 - 1.1 Make it work with multi level plugins + + Apparently Foo::Plugin::Bar::Quux doesn't work. + Thanks to Darren Chamberlain for spotting this. + +2003-12-15 - 1.00 Add some more features + + Added the ability to require without instantiating (for Tom Insam) + Prevented the names from being explicitly sorted (again, for Tom Insam) + Added in the ability to provide other search directorys. + +2003-11-27 - 0.95 Some Test::More issues + + Explicitly number the tests which fixes some test more failures + + +2003-10-21 - 0.9 We can rebuild you, we have the technology + + Having used this in the wild some changes to make it better. + + +2003-10-20 - 0.8 Fix. + + Namespace issues. + + +2003-10-17 - 0.7 And take your Build.PL with you + + Pesky MANIFEST.SKIP + + +2003-10-15 - 0.6 Initial release + + Be free my pretty. EMANCIPIA! diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/INSTALL b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/INSTALL new file mode 100755 index 0000000..20f2f19 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/INSTALL @@ -0,0 +1,12 @@ + +Same as practically every other Perl module ... + + % perl Build.PL + % perl Build + % perl Build test + % sudo Build install + +N.B : If you don't already have Module::Build then running Makefile.PL +will prompt you to install it. + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST new file mode 100755 index 0000000..4becf57 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST @@ -0,0 +1,66 @@ +Changes +INSTALL +lib/Devel/InnerPackage.pm +lib/Module/Pluggable.pm +lib/Module/Pluggable/Object.pm +Makefile.PL +MANIFEST This list of files +MANIFEST.SKIP +META.yml +README +t/01use.t +t/02alsoworks.t +t/02works.t +t/02works_taint.t +t/03diffname.t +t/04acmedir.t +t/04acmedir_single.t +t/04acmepath.t +t/04acmepath_single.t +t/05postpath.t +t/06multipath.t +t/07instantiate.t +t/08nothing.t +t/09require.t +t/10innerpack.t +t/10innerpack_inner.t +t/10innerpack_noinner.t +t/10innerpack_override.t +t/10innerpack_super.t +t/11usetwice.t +t/12only.t +t/12onlyarray.t +t/12onlyregex.t +t/13except.t +t/13exceptarray.t +t/13exceptregex.t +t/14package.t +t/15topicsafe.t +t/16different_extension.t +t/17devel_inner_package.t +t/18skipped_package.t +t/19can_ok_clobber.t +t/20dodgy_files.t +t/21editor_junk.t +t/acme/Acme/MyTest/Plugin/Foo.pm +t/lib/Acme/MyTest/Plugin/Foo.pm +t/lib/EditorJunk/Plugin/Bar.pm +t/lib/EditorJunk/Plugin/Bar.pm.swo +t/lib/EditorJunk/Plugin/Bar.pm.swp +t/lib/EditorJunk/Plugin/Bar.pm~ +t/lib/EditorJunk/Plugin/Foo.pm +t/lib/ExtTest/Plugin/Bar.plugin +t/lib/ExtTest/Plugin/Foo.plugin +t/lib/ExtTest/Plugin/Quux/Foo.plugin +t/lib/InnerTest/Plugin/Foo.pm +t/lib/MyOtherTest/Plugin/Bar.pm +t/lib/MyOtherTest/Plugin/Foo.pm +t/lib/MyOtherTest/Plugin/Quux.pm +t/lib/MyOtherTest/Plugin/Quux/Foo.pm +t/lib/MyTest/Extend/Plugin/Bar.pm +t/lib/MyTest/Plugin/Bar.pm +t/lib/MyTest/Plugin/Foo.pm +t/lib/MyTest/Plugin/Quux/Foo.pm +t/lib/No/Middle.pm +t/lib/OddTest/Plugin/Foo.pm +t/lib/TA/C/A/I.pm diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST.SKIP b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST.SKIP new file mode 100644 index 0000000..e0694bc --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/MANIFEST.SKIP @@ -0,0 +1,12 @@ +Build$ +_build +blib +Makefile$ +\.tar\.gz$ +\.svn +\.bak$ +^Module-Pluggable +t/lib/OddTest/Plugin/-Dodgy.pm +t/lib/EditorJunk/Plugin/#Bar.pm# +t/lib/EditorJunk/Plugin/.#Bar.pm + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/META.yml b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/META.yml new file mode 100644 index 0000000..5c3f750 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/META.yml @@ -0,0 +1,15 @@ +--- #YAML:1.0 +name: Module-Pluggable +version: 3.8 +abstract: ~ +license: ~ +author: ~ +generated_by: ExtUtils::MakeMaker version 6.38 +distribution_type: module +requires: + File::Basename: 0 + File::Spec: 3.00 + Test::More: 0.62 +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.3.html + version: 1.3 diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Makefile.PL b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Makefile.PL new file mode 100755 index 0000000..9fcc275 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/Makefile.PL @@ -0,0 +1,49 @@ +# Note: this file was auto-generated by Module::Build::Compat version 0.03 +use ExtUtils::MakeMaker; +use FindBin; +use File::Spec::Functions qw(catfile); + +# VOS and VMS can't handle dodgy plugin names +# and VOS can't even unpack them so we create them on the +# fly and only run the tests if they're present +my %dodgy_files = ( + catfile(qw(OddTest Plugin -Dodgy.pm)) => 'OddTest::Plugin::-Dodgy', + catfile(qw(EditorJunk Plugin #Bar.pm#)) => 'EditorJunk::Bar', + catfile(qw(EditorJunk Plugin .#Bar.pm)) => 'EditorJunk::Bar', +); + +my $core = grep { $_ eq 'PERL_CORE=1' } @ARGV; +my @path = $core ? (File::Spec->updir, File::Spec->updir, File::Spec->updir, + "t", "Module_Pluggable") : ($FindBin::Bin,"t"); + +my @files; +if ($^O ne 'VMS' && $^O ne 'VOS') { + foreach my $test (keys %dodgy_files) { + my ($file) = (catfile($FindBin::Bin,"t","lib", $test)=~/^(.*)$/); + if (open(my $fh, ">", $file)) { + my $name = $dodgy_files{$test}; + print $fh "package $name;\nsub new {}\n1;"; + close($fh); + push @files, $file; + } + } +} + + +WriteMakefile +( + 'NAME' => 'Module::Pluggable', + 'VERSION_FROM' => 'lib/Module/Pluggable.pm', + 'PREREQ_PM' => { + 'File::Basename' => '0', + 'File::Spec' => '3.00', + 'Test::More' => '0.62' + }, + 'EXE_FILES' => [], + 'INSTALLDIRS' => ($] >= 5.008009) ? "perl" : "site", + 'PL_FILES' => {}, + 'realclean' => {FILES=> join ' ', @files}, + # In the core pods will be built by installman. + $core ? (MAN3PODS => {}) : (), + ) +; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/README b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/README new file mode 100755 index 0000000..6efefc0 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/README @@ -0,0 +1,238 @@ +NAME + Module::Pluggable - automatically give your module the ability to have + plugins + +SYNOPSIS + Simple use Module::Pluggable - + + package MyClass; + use Module::Pluggable; + + and then later ... + + use MyClass; + my $mc = MyClass->new(); + # returns the names of all plugins installed under MyClass::Plugin::* + my @plugins = $mc->plugins(); + +EXAMPLE + Why would you want to do this? Say you have something that wants to pass + an object to a number of different plugins in turn. For example you may + want to extract meta-data from every email you get sent and do something + with it. Plugins make sense here because then you can keep adding new + meta data parsers and all the logic and docs for each one will be self + contained and new handlers are easy to add without changing the core + code. For that, you might do something like ... + + package Email::Examiner; + + use strict; + use Email::Simple; + use Module::Pluggable require => 1; + + sub handle_email { + my $self = shift; + my $email = shift; + + foreach my $plugin ($self->plugins) { + $plugin->examine($email); + } + + return 1; + } + + .. and all the plugins will get a chance in turn to look at it. + + This can be trivally extended so that plugins could save the email + somewhere and then no other plugin should try and do that. Simply have + it so that the "examine" method returns 1 if it has saved the email + somewhere. You might also wnat to be paranoid and check to see if the + plugin has an "examine" method. + + foreach my $plugin ($self->plugins) { + next unless $plugin->can('examine'); + last if $plugin->examine($email); + } + + And so on. The sky's the limit. + +DESCRIPTION + Provides a simple but, hopefully, extensible way of having 'plugins' for + your module. Obviously this isn't going to be the be all and end all of + solutions but it works for me. + + Essentially all it does is export a method into your namespace that + looks through a search path for .pm files and turn those into class + names. + + Optionally it instantiates those classes for you. + +ADVANCED USAGE + Alternatively, if you don't want to use 'plugins' as the method ... + + package MyClass; + use Module::Pluggable sub_name => 'foo'; + + and then later ... + + my @plugins = $mc->foo(); + + Or if you want to look in another namespace + + package MyClass; + use Module::Pluggable search_path => ['Acme::MyClass::Plugin', 'MyClass::Extend']; + + or directory + + use Module::Pluggable search_dirs => ['mylibs/Foo']; + + Or if you want to instantiate each plugin rather than just return the + name + + package MyClass; + use Module::Pluggable instantiate => 'new'; + + and then + + # whatever is passed to 'plugins' will be passed + # to 'new' for each plugin + my @plugins = $mc->plugins(@options); + + alternatively you can just require the module without instantiating it + + package MyClass; + use Module::Pluggable require => 1; + + since requiring automatically searches inner packages, which may not be + desirable, you can turn this off + + package MyClass; + use Module::Pluggable require => 1, inner => 0; + + You can limit the plugins loaded using the except option, either as a + string, array ref or regex + + package MyClass; + use Module::Pluggable except => 'MyClass::Plugin::Foo'; + + or + + package MyClass; + use Module::Pluggable except => ['MyClass::Plugin::Foo', 'MyClass::Plugin::Bar']; + + or + + package MyClass; + use Module::Pluggable except => qr/^MyClass::Plugin::(Foo|Bar)$/; + + and similarly for only which will only load plugins which match. + + Remember you can use the module more than once + + package MyClass; + use Module::Pluggable search_path => 'MyClass::Filters' sub_name => 'filters'; + use Module::Pluggable search_path => 'MyClass::Plugins' sub_name => 'plugins'; + + and then later ... + + my @filters = $self->filters; + my @plugins = $self->plugins; + +INNER PACKAGES + If you have, for example, a file lib/Something/Plugin/Foo.pm that + contains package definitions for both "Something::Plugin::Foo" and + "Something::Plugin::Bar" then as long as you either have either the + require or instantiate option set then we'll also find + "Something::Plugin::Bar". Nifty! + +OPTIONS + You can pass a hash of options when importing this module. + + The options can be ... + + sub_name + The name of the subroutine to create in your namespace. + + By default this is 'plugins' + + search_path + An array ref of namespaces to look in. + + search_dirs + An array ref of directorys to look in before @INC. + + instantiate + Call this method on the class. In general this will probably be 'new' + but it can be whatever you want. Whatever arguments are passed to + 'plugins' will be passed to the method. + + The default is 'undef' i.e just return the class name. + + require + Just require the class, don't instantiate (overrides 'instantiate'); + + inner + If set to 0 will not search inner packages. If set to 1 will override + "require". + + only + Takes a string, array ref or regex describing the names of the only + plugins to return. Whilst this may seem perverse ... well, it is. But it + also makes sense. Trust me. + + except + Similar to "only" it takes a description of plugins to exclude from + returning. This is slightly less perverse. + + package + This is for use by extension modules which build on "Module::Pluggable": + passing a "package" option allows you to place the plugin method in a + different package other than your own. + + file_regex + By default "Module::Pluggable" only looks for *.pm* files. + + By supplying a new "file_regex" then you can change this behaviour e.g + + file_regex => qr/\.plugin$/ + + include_editor_junk + By default "Module::Pluggable" ignores files that look like they were + left behind by editors. Currently this means files ending in ~ (~), the + extensions .swp or .swo, or files beginning with .#. + + Setting "include_editor_junk" changes "Module::Pluggable" so it does not + ignore any files it finds. + +METHODs + search_path + The method "search_path" is exported into you namespace as well. You can + call that at any time to change or replace the search_path. + + $self->search_path( add => "New::Path" ); # add + $self->search_path( new => "New::Path" ); # replace + +FUTURE PLANS + This does everything I need and I can't really think of any other + features I want to add. Famous last words of course + + Recently tried fixed to find inner packages and to make it 'just work' + with PAR but there are still some issues. + + However suggestions (and patches) are welcome. + +AUTHOR + Simon Wistow + +COPYING + Copyright, 2006 Simon Wistow + + Distributed under the same terms as Perl itself. + +BUGS + None known. + +SEE ALSO + File::Spec, File::Find, File::Basename, Class::Factory::Util, + Module::Pluggable::Ordered + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/changelog b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/changelog new file mode 100644 index 0000000..9df96ea --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/changelog @@ -0,0 +1,106 @@ +libmodule-pluggable-perl (3.8-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Fri, 16 Apr 2010 06:45:02 +0100 + + +libmodule-pluggable-perl (3.8-1) unstable; urgency=low + + * New upstream release. + + -- gregor herrmann Mon, 17 Mar 2008 20:50:42 +0100 + +libmodule-pluggable-perl (3.7-1) unstable; urgency=low + + * New upstream release. + + -- Roberto C. Sanchez Sun, 16 Mar 2008 02:30:40 -0400 + +libmodule-pluggable-perl (3.6-2) unstable; urgency=low + + [ Stephen Gran ] + * Lower debhelper compatibility level back to 5. + + [ gregor herrmann ] + * debian/control: Added: Vcs-Svn field (source stanza); Vcs-Browser + field (source stanza); Homepage field (source stanza). Removed: XS- + Vcs-Svn fields. + * Set Standards-Version to 3.7.3 (no changes). + * Set debhelper compatibility level to 6. + * debian/watch: use dist-based URL. + * Remove debian/docs and don't install README (text version of POD + documentation) any more. + * debian/rules: replace with template from dh-make-perl to update it; + switch to using Build.PL instead of Makefile.PL (also closes: #467873). + * debian/copyright: update years of copyright, switch to new format. + + -- gregor herrmann Wed, 27 Feb 2008 19:11:31 +0100 + +libmodule-pluggable-perl (3.6-1) unstable; urgency=low + + * New upstream release. + + -- gregor herrmann Fri, 13 Apr 2007 21:13:42 +0200 + +libmodule-pluggable-perl (3.4-1) unstable; urgency=low + + * New upstream release + + -- Krzysztof Krzyzaniak (eloy) Wed, 29 Nov 2006 10:10:20 +0100 + +libmodule-pluggable-perl (3.01-1) unstable; urgency=low + + * New upstream release + * debian/control: + - Uploaders: added me + - Standards-Version: increased to 3.7.2 without any changes + + -- Krzysztof Krzyzaniak (eloy) Wed, 7 Jun 2006 15:09:35 +0200 + +libmodule-pluggable-perl (2.97-1) unstable; urgency=low + + * New upstream release (Closes: #329593) + * Adopted for the Debian Perl Group. (Closes: #358894) + * Upgrade to Standards-Version 3.6.2. No changes needed. + * Upgrade to debhelper compatibility level 5. + * Move debhelper from Build-Depends-Indep to Build-Depends, as + it's required by the 'clean' target. + * Don't ignore the result of 'make realclean'. + * Add dependency on ${misc:Depends}, as recommended by debhelper. + * Run 'make test' at build time. + * Updated debian/copyright, since the license is nowadays + 'under the same terms as Perl itself'. + + -- Niko Tyni Fri, 31 Mar 2006 21:48:21 +0300 + +libmodule-pluggable-perl (2.6-1) unstable; urgency=low + + * New upstream release + * remove dependencies on MODULE::Universal and File::Find::Rule + * change to my shiny new @debian.org address + + -- S. Zachariah Sprackett Thu, 17 Feb 2005 18:14:13 -0500 + +libmodule-pluggable-perl (2.0-1) unstable; urgency=low + + * New upstream release which adds proper support for inner packages + * Added watch file now that we're into version 2.0 + - hopefully upstream won't break this by releasing a 2.11 which comes + before 2.2 again + * Minor text change in the package description + + -- S. Zachariah Sprackett Fri, 20 Aug 2004 13:46:17 -0400 + +libmodule-pluggable-perl (1.9-1) unstable; urgency=low + + * New upstream release. + * Allows install of a method in another package's namespace + + -- S. Zachariah Sprackett Tue, 10 Aug 2004 21:44:36 -0400 + +libmodule-pluggable-perl (1.8-1) unstable; urgency=low + + * Initial Release. + + -- S. Zachariah Sprackett Thu, 15 Jul 2004 20:43:25 -0400 diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/compat b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/compat @@ -0,0 +1 @@ +5 diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/control b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/control new file mode 100644 index 0000000..1d3821c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/control @@ -0,0 +1,19 @@ +Source: libmodule-pluggable-perl +Section: perl +Priority: optional +Maintainer: Debian Perl Group +Uploaders: Niko Tyni , Krzysztof Krzyzaniak (eloy) , gregor herrmann +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: perl (>= 5.6.0-16), perl-modules +Standards-Version: 3.7.3 +Homepage: http://search.cpan.org/dist/Module-Pluggable/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libmodule-pluggable-perl/ +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libmodule-pluggable-perl/ + +Package: libmodule-pluggable-perl +Architecture: all +Depends: ${perl:Depends}, ${misc:Depends} +Description: Automatically provide your module the ability to accept plugins + Provides a simple yet extensible way of supporting 'plugins' for your + module. It exports a method into your namespace that looks through a search + path for .pm files and turns those into class names. diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/copyright b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/copyright new file mode 100644 index 0000000..11ce9b4 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/copyright @@ -0,0 +1,19 @@ +Upstream Author: Simon Wistow +Upstream source location: http://search.cpan.org/dist/Module-Pluggable/ + +Files: * +Copyright: Copyright, 2003-2006 Simon Wistow +License: GPL-1+ | Artistic + Distributed under the same terms as Perl itself. + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in \`/usr/share/common-licenses/GPL\' +and the Artistic Licence in \`/usr/share/common-licenses/Artistic\'. + +Files: debian/* +Copyright: + Copyright 2004-2005, S. Zachariah Sprackett + Copyright 2006-2008, Debian Perl Group +License: GPL-1+ | Artistic + The packaging is licensed under the same terms as the software itself. diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/rules b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/rules new file mode 100755 index 0000000..3b18717 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/rules @@ -0,0 +1,73 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. +# +# It was later modified by Jason Kohles +# http://www.jasonkohles.com/ to support Module::Build installed modules + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PACKAGE=$(shell dh_listpackages) + +ifndef PERL +PERL = /usr/bin/perl +endif + +TMP =$(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) + $(MAKE) test + + touch $@ + +clean: + dh_testdir + dh_testroot + + dh_clean build-stamp install-stamp + [ ! -f Makefile ] || $(MAKE) realclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + [ ! -d $(TMP)/usr/lib/perl5 ] || rmdir --ignore-fail-on-non-empty --parents --verbose $(TMP)/usr/lib/perl5 + + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installdocs + dh_installchangelogs Changes + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/watch b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/watch new file mode 100644 index 0000000..4ab1734 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://search.cpan.org/dist/Module-Pluggable/ .*/Module-Pluggable-v?(\d[\d_.]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip) diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Devel/InnerPackage.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Devel/InnerPackage.pm new file mode 100755 index 0000000..614a59a --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Devel/InnerPackage.pm @@ -0,0 +1,128 @@ +package Devel::InnerPackage; + +use strict; +use base qw(Exporter); +use vars qw($VERSION @EXPORT_OK); + +$VERSION = '0.3'; +@EXPORT_OK = qw(list_packages); + +=pod + +=head1 NAME + + +Devel::InnerPackage - find all the inner packages of a package + +=head1 SYNOPSIS + + use Foo::Bar; + use Devel::InnerPackage qw(list_packages); + + my @inner_packages = list_packages('Foo::Bar'); + + +=head1 DESCRIPTION + + +Given a file like this + + + package Foo::Bar; + + sub foo {} + + + package Foo::Bar::Quux; + + sub quux {} + + package Foo::Bar::Quirka; + + sub quirka {} + + 1; + +then + + list_packages('Foo::Bar'); + +will return + + Foo::Bar::Quux + Foo::Bar::Quirka + +=head1 METHODS + +=head2 list_packages + +Return a list of all inner packages of that package. + +=cut + +sub list_packages { + my $pack = shift; $pack .= "::" unless $pack =~ m!::$!; + + no strict 'refs'; + my @packs; + my @stuff = grep !/^(main|)::$/, keys %{$pack}; + for my $cand (grep /::$/, @stuff) + { + $cand =~ s!::$!!; + my @children = list_packages($pack.$cand); + + push @packs, "$pack$cand" unless $cand =~ /^::/ || + !__PACKAGE__->_loaded($pack.$cand); # or @children; + push @packs, @children; + } + return grep {$_ !~ /::(::ISA::CACHE|SUPER)/} @packs; +} + +### XXX this is an inlining of the Class-Inspector->loaded() +### method, but inlined to remove the dependency. +sub _loaded { + my ($class, $name) = @_; + + no strict 'refs'; + + # Handle by far the two most common cases + # This is very fast and handles 99% of cases. + return 1 if defined ${"${name}::VERSION"}; + return 1 if defined @{"${name}::ISA"}; + + # Are there any symbol table entries other than other namespaces + foreach ( keys %{"${name}::"} ) { + next if substr($_, -2, 2) eq '::'; + return 1 if defined &{"${name}::$_"}; + } + + # No functions, and it doesn't have a version, and isn't anything. + # As an absolute last resort, check for an entry in %INC + my $filename = join( '/', split /(?:'|::)/, $name ) . '.pm'; + return 1 if defined $INC{$filename}; + + ''; +} + + +=head1 AUTHOR + +Simon Wistow + +=head1 COPYING + +Copyright, 2005 Simon Wistow + +Distributed under the same terms as Perl itself. + +=head1 BUGS + +None known. + +=cut + + + + + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable.pm new file mode 100755 index 0000000..7de3033 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable.pm @@ -0,0 +1,355 @@ +package Module::Pluggable; + +use strict; +use vars qw($VERSION); +use Module::Pluggable::Object; + +# ObQuote: +# Bob Porter: Looks like you've been missing a lot of work lately. +# Peter Gibbons: I wouldn't say I've been missing it, Bob! + + +$VERSION = '3.8'; + +sub import { + my $class = shift; + my %opts = @_; + + my ($pkg, $file) = caller; + # the default name for the method is 'plugins' + my $sub = $opts{'sub_name'} || 'plugins'; + # get our package + my ($package) = $opts{'package'} || $pkg; + $opts{filename} = $file; + $opts{package} = $package; + + + my $finder = Module::Pluggable::Object->new(%opts); + my $subroutine = sub { my $self = shift; return $finder->plugins(@_) }; + + my $searchsub = sub { + my $self = shift; + my ($action,@paths) = @_; + + $finder->{'search_path'} = ["${package}::Plugin"] if ($action eq 'add' and not $finder->{'search_path'} ); + push @{$finder->{'search_path'}}, @paths if ($action eq 'add'); + $finder->{'search_path'} = \@paths if ($action eq 'new'); + return $finder->{'search_path'}; + }; + + + my $onlysub = sub { + my ($self, $only) = @_; + + if (defined $only) { + $finder->{'only'} = $only; + }; + + return $finder->{'only'}; + }; + + my $exceptsub = sub { + my ($self, $except) = @_; + + if (defined $except) { + $finder->{'except'} = $except; + }; + + return $finder->{'except'}; + }; + + + no strict 'refs'; + no warnings qw(redefine prototype); + + *{"$package\::$sub"} = $subroutine; + *{"$package\::search_path"} = $searchsub; + *{"$package\::only"} = $onlysub; + *{"$package\::except"} = $exceptsub; + +} + +1; + +=pod + +=head1 NAME + +Module::Pluggable - automatically give your module the ability to have plugins + +=head1 SYNOPSIS + + +Simple use Module::Pluggable - + + package MyClass; + use Module::Pluggable; + + +and then later ... + + use MyClass; + my $mc = MyClass->new(); + # returns the names of all plugins installed under MyClass::Plugin::* + my @plugins = $mc->plugins(); + +=head1 EXAMPLE + +Why would you want to do this? Say you have something that wants to pass an +object to a number of different plugins in turn. For example you may +want to extract meta-data from every email you get sent and do something +with it. Plugins make sense here because then you can keep adding new +meta data parsers and all the logic and docs for each one will be +self contained and new handlers are easy to add without changing the +core code. For that, you might do something like ... + + package Email::Examiner; + + use strict; + use Email::Simple; + use Module::Pluggable require => 1; + + sub handle_email { + my $self = shift; + my $email = shift; + + foreach my $plugin ($self->plugins) { + $plugin->examine($email); + } + + return 1; + } + + + +.. and all the plugins will get a chance in turn to look at it. + +This can be trivally extended so that plugins could save the email +somewhere and then no other plugin should try and do that. +Simply have it so that the C method returns C<1> if +it has saved the email somewhere. You might also wnat to be paranoid +and check to see if the plugin has an C method. + + foreach my $plugin ($self->plugins) { + next unless $plugin->can('examine'); + last if $plugin->examine($email); + } + + +And so on. The sky's the limit. + + +=head1 DESCRIPTION + +Provides a simple but, hopefully, extensible way of having 'plugins' for +your module. Obviously this isn't going to be the be all and end all of +solutions but it works for me. + +Essentially all it does is export a method into your namespace that +looks through a search path for .pm files and turn those into class names. + +Optionally it instantiates those classes for you. + +=head1 ADVANCED USAGE + + +Alternatively, if you don't want to use 'plugins' as the method ... + + package MyClass; + use Module::Pluggable sub_name => 'foo'; + + +and then later ... + + my @plugins = $mc->foo(); + + +Or if you want to look in another namespace + + package MyClass; + use Module::Pluggable search_path => ['Acme::MyClass::Plugin', 'MyClass::Extend']; + +or directory + + use Module::Pluggable search_dirs => ['mylibs/Foo']; + + +Or if you want to instantiate each plugin rather than just return the name + + package MyClass; + use Module::Pluggable instantiate => 'new'; + +and then + + # whatever is passed to 'plugins' will be passed + # to 'new' for each plugin + my @plugins = $mc->plugins(@options); + + +alternatively you can just require the module without instantiating it + + package MyClass; + use Module::Pluggable require => 1; + +since requiring automatically searches inner packages, which may not be desirable, you can turn this off + + + package MyClass; + use Module::Pluggable require => 1, inner => 0; + + +You can limit the plugins loaded using the except option, either as a string, +array ref or regex + + package MyClass; + use Module::Pluggable except => 'MyClass::Plugin::Foo'; + +or + + package MyClass; + use Module::Pluggable except => ['MyClass::Plugin::Foo', 'MyClass::Plugin::Bar']; + +or + + package MyClass; + use Module::Pluggable except => qr/^MyClass::Plugin::(Foo|Bar)$/; + + +and similarly for only which will only load plugins which match. + +Remember you can use the module more than once + + package MyClass; + use Module::Pluggable search_path => 'MyClass::Filters' sub_name => 'filters'; + use Module::Pluggable search_path => 'MyClass::Plugins' sub_name => 'plugins'; + +and then later ... + + my @filters = $self->filters; + my @plugins = $self->plugins; + +=head1 INNER PACKAGES + +If you have, for example, a file B that +contains package definitions for both C and +C then as long as you either have either +the B or B option set then we'll also find +C. Nifty! + +=head1 OPTIONS + +You can pass a hash of options when importing this module. + +The options can be ... + +=head2 sub_name + +The name of the subroutine to create in your namespace. + +By default this is 'plugins' + +=head2 search_path + +An array ref of namespaces to look in. + +=head2 search_dirs + +An array ref of directorys to look in before @INC. + +=head2 instantiate + +Call this method on the class. In general this will probably be 'new' +but it can be whatever you want. Whatever arguments are passed to 'plugins' +will be passed to the method. + +The default is 'undef' i.e just return the class name. + +=head2 require + +Just require the class, don't instantiate (overrides 'instantiate'); + +=head2 inner + +If set to 0 will B search inner packages. +If set to 1 will override C. + +=head2 only + +Takes a string, array ref or regex describing the names of the only plugins to +return. Whilst this may seem perverse ... well, it is. But it also +makes sense. Trust me. + +=head2 except + +Similar to C it takes a description of plugins to exclude +from returning. This is slightly less perverse. + +=head2 package + +This is for use by extension modules which build on C: +passing a C option allows you to place the plugin method in a +different package other than your own. + +=head2 file_regex + +By default C only looks for I<.pm> files. + +By supplying a new C then you can change this behaviour e.g + + file_regex => qr/\.plugin$/ + +=head2 include_editor_junk + +By default C ignores files that look like they were +left behind by editors. Currently this means files ending in F<~> (~), +the extensions F<.swp> or F<.swo>, or files beginning with F<.#>. + +Setting C changes C so it does +not ignore any files it finds. + + +=head1 METHODs + +=head2 search_path + +The method C is exported into you namespace as well. +You can call that at any time to change or replace the +search_path. + + $self->search_path( add => "New::Path" ); # add + $self->search_path( new => "New::Path" ); # replace + + + +=head1 FUTURE PLANS + +This does everything I need and I can't really think of any other +features I want to add. Famous last words of course + +Recently tried fixed to find inner packages and to make it +'just work' with PAR but there are still some issues. + + +However suggestions (and patches) are welcome. + +=head1 AUTHOR + +Simon Wistow + +=head1 COPYING + +Copyright, 2006 Simon Wistow + +Distributed under the same terms as Perl itself. + +=head1 BUGS + +None known. + +=head1 SEE ALSO + +L, L, L, L, L + +=cut + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable/Object.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable/Object.pm new file mode 100755 index 0000000..d99eb9d --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/lib/Module/Pluggable/Object.pm @@ -0,0 +1,351 @@ +package Module::Pluggable::Object; + +use strict; +use File::Find (); +use File::Basename; +use File::Spec::Functions qw(splitdir catdir curdir catfile abs2rel); +use Carp qw(croak carp); +use Devel::InnerPackage; +use Data::Dumper; +use vars qw($VERSION); + +$VERSION = '3.6'; + + +sub new { + my $class = shift; + my %opts = @_; + + return bless \%opts, $class; + +} + +### Eugggh, this code smells +### This is what happens when you keep adding patches +### *sigh* + + +sub plugins { + my $self = shift; + + # override 'require' + $self->{'require'} = 1 if $self->{'inner'}; + + my $filename = $self->{'filename'}; + my $pkg = $self->{'package'}; + + # automatically turn a scalar search path or namespace into a arrayref + for (qw(search_path search_dirs)) { + $self->{$_} = [ $self->{$_} ] if exists $self->{$_} && !ref($self->{$_}); + } + + + + + # default search path is '::::Plugin' + $self->{'search_path'} = ["${pkg}::Plugin"] unless $self->{'search_path'}; + + + #my %opts = %$self; + + + # check to see if we're running under test + my @SEARCHDIR = exists $INC{"blib.pm"} && defined $filename && $filename =~ m!(^|/)blib/! ? grep {/blib/} @INC : @INC; + + # add any search_dir params + unshift @SEARCHDIR, @{$self->{'search_dirs'}} if defined $self->{'search_dirs'}; + + + my @plugins = $self->search_directories(@SEARCHDIR); + + # push @plugins, map { print STDERR "$_\n"; $_->require } list_packages($_) for (@{$self->{'search_path'}}); + + # return blank unless we've found anything + return () unless @plugins; + + + # exceptions + my %only; + my %except; + my $only; + my $except; + + if (defined $self->{'only'}) { + if (ref($self->{'only'}) eq 'ARRAY') { + %only = map { $_ => 1 } @{$self->{'only'}}; + } elsif (ref($self->{'only'}) eq 'Regexp') { + $only = $self->{'only'} + } elsif (ref($self->{'only'}) eq '') { + $only{$self->{'only'}} = 1; + } + } + + + if (defined $self->{'except'}) { + if (ref($self->{'except'}) eq 'ARRAY') { + %except = map { $_ => 1 } @{$self->{'except'}}; + } elsif (ref($self->{'except'}) eq 'Regexp') { + $except = $self->{'except'} + } elsif (ref($self->{'except'}) eq '') { + $except{$self->{'except'}} = 1; + } + } + + + # remove duplicates + # probably not necessary but hey ho + my %plugins; + for(@plugins) { + next if (keys %only && !$only{$_} ); + next unless (!defined $only || m!$only! ); + + next if (keys %except && $except{$_} ); + next if (defined $except && m!$except! ); + $plugins{$_} = 1; + } + + # are we instantiating or requring? + if (defined $self->{'instantiate'}) { + my $method = $self->{'instantiate'}; + return map { ($_->can($method)) ? $_->$method(@_) : () } keys %plugins; + } else { + # no? just return the names + return keys %plugins; + } + + +} + +sub search_directories { + my $self = shift; + my @SEARCHDIR = @_; + + my @plugins; + # go through our @INC + foreach my $dir (@SEARCHDIR) { + push @plugins, $self->search_paths($dir); + } + + return @plugins; +} + + +sub search_paths { + my $self = shift; + my $dir = shift; + my @plugins; + + my $file_regex = $self->{'file_regex'} || qr/\.pm$/; + + + # and each directory in our search path + foreach my $searchpath (@{$self->{'search_path'}}) { + # create the search directory in a cross platform goodness way + my $sp = catdir($dir, (split /::/, $searchpath)); + + # if it doesn't exist or it's not a dir then skip it + next unless ( -e $sp && -d _ ); # Use the cached stat the second time + + my @files = $self->find_files($sp); + + # foreach one we've found + foreach my $file (@files) { + # untaint the file; accept .pm only + next unless ($file) = ($file =~ /(.*$file_regex)$/); + # parse the file to get the name + my ($name, $directory, $suffix) = fileparse($file, $file_regex); + + next if (!$self->{include_editor_junk} && $self->_is_editor_junk($name)); + + $directory = abs2rel($directory, $sp); + + # If we have a mixed-case package name, assume case has been preserved + # correctly. Otherwise, root through the file to locate the case-preserved + # version of the package name. + my @pkg_dirs = (); + if ( $name eq lc($name) || $name eq uc($name) ) { + my $pkg_file = catfile($sp, $directory, "$name$suffix"); + open PKGFILE, "<$pkg_file" or die "search_paths: Can't open $pkg_file: $!"; + my $in_pod = 0; + while ( my $line = ) { + $in_pod = 1 if $line =~ m/^=\w/; + $in_pod = 0 if $line =~ /^=cut/; + next if ($in_pod || $line =~ /^=cut/); # skip pod text + next if $line =~ /^\s*#/; # and comments + if ( $line =~ m/^\s*package\s+(.*::)?($name)\s*;/i ) { + @pkg_dirs = split /::/, $1; + $name = $2; + last; + } + } + close PKGFILE; + } + + # then create the class name in a cross platform way + $directory =~ s/^[a-z]://i if($^O =~ /MSWin32|dos/); # remove volume + my @dirs = (); + if ($directory) { + ($directory) = ($directory =~ /(.*)/); + @dirs = grep(length($_), splitdir($directory)) + unless $directory eq curdir(); + for my $d (reverse @dirs) { + my $pkg_dir = pop @pkg_dirs; + last unless defined $pkg_dir; + $d =~ s/\Q$pkg_dir\E/$pkg_dir/i; # Correct case + } + } else { + $directory = ""; + } + my $plugin = join '::', $searchpath, @dirs, $name; + + next unless $plugin =~ m!(?:[a-z\d]+)[a-z\d]!i; + + my $err = $self->handle_finding_plugin($plugin); + carp "Couldn't require $plugin : $err" if $err; + + push @plugins, $plugin; + } + + # now add stuff that may have been in package + # NOTE we should probably use all the stuff we've been given already + # but then we can't unload it :( + push @plugins, $self->handle_innerpackages($searchpath) unless (exists $self->{inner} && !$self->{inner}); + } # foreach $searchpath + + return @plugins; +} + +sub _is_editor_junk { + my $self = shift; + my $name = shift; + + # Emacs (and other Unix-y editors) leave temp files ending in a + # tilde as a backup. + return 1 if $name =~ /~$/; + # Emacs makes these files while a buffer is edited but not yet + # saved. + return 1 if $name =~ /^\.#/; + # Vim can leave these files behind if it crashes. + return 1 if $name =~ /\.sw[po]$/; + + return 0; +} + +sub handle_finding_plugin { + my $self = shift; + my $plugin = shift; + + return unless (defined $self->{'instantiate'} || $self->{'require'}); + $self->_require($plugin); +} + +sub find_files { + my $self = shift; + my $search_path = shift; + my $file_regex = $self->{'file_regex'} || qr/\.pm$/; + + + # find all the .pm files in it + # this isn't perfect and won't find multiple plugins per file + #my $cwd = Cwd::getcwd; + my @files = (); + { # for the benefit of perl 5.6.1's Find, localize topic + local $_; + File::Find::find( { no_chdir => 1, + wanted => sub { + # Inlined from File::Find::Rule C< name => '*.pm' > + return unless $File::Find::name =~ /$file_regex/; + (my $path = $File::Find::name) =~ s#^\\./##; + push @files, $path; + } + }, $search_path ); + } + #chdir $cwd; + return @files; + +} + +sub handle_innerpackages { + my $self = shift; + my $path = shift; + my @plugins; + + + foreach my $plugin (Devel::InnerPackage::list_packages($path)) { + my $err = $self->handle_finding_plugin($plugin); + #next if $err; + #next unless $INC{$plugin}; + push @plugins, $plugin; + } + return @plugins; + +} + + +sub _require { + my $self = shift; + my $pack = shift; + local $@; + eval "CORE::require $pack"; + return $@; +} + + +1; + +=pod + +=head1 NAME + +Module::Pluggable::Object - automatically give your module the ability to have plugins + +=head1 SYNOPSIS + + +Simple use Module::Pluggable - + + package MyClass; + use Module::Pluggable::Object; + + my $finder = Module::Pluggable::Object->new(%opts); + print "My plugins are: ".join(", ", $finder->plugins)."\n"; + +=head1 DESCRIPTION + +Provides a simple but, hopefully, extensible way of having 'plugins' for +your module. Obviously this isn't going to be the be all and end all of +solutions but it works for me. + +Essentially all it does is export a method into your namespace that +looks through a search path for .pm files and turn those into class names. + +Optionally it instantiates those classes for you. + +This object is wrapped by C. If you want to do something +odd or add non-general special features you're probably best to wrap this +and produce your own subclass. + +=head1 OPTIONS + +See the C docs. + +=head1 AUTHOR + +Simon Wistow + +=head1 COPYING + +Copyright, 2006 Simon Wistow + +Distributed under the same terms as Perl itself. + +=head1 BUGS + +None known. + +=head1 SEE ALSO + +L + +=cut + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/01use.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/01use.t new file mode 100755 index 0000000..be0b848 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/01use.t @@ -0,0 +1,9 @@ +#!perl -w + +use strict; +use Test::More tests => 3; + +use_ok('Module::Pluggable'); +use_ok('Module::Pluggable::Object'); +use_ok('Devel::InnerPackage'); + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02alsoworks.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02alsoworks.t new file mode 100644 index 0000000..131df29 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02alsoworks.t @@ -0,0 +1,42 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 5; + +my $foo; +ok($foo = MyOtherTest->new()); + +my @plugins; +my @expected = qw(MyOtherTest::Plugin::Bar MyOtherTest::Plugin::Foo MyOtherTest::Plugin::Quux MyOtherTest::Plugin::Quux::Foo); +ok(@plugins = sort $foo->plugins); + + + +is_deeply(\@plugins, \@expected, "is deeply"); + +@plugins = (); + +ok(@plugins = sort MyOtherTest->plugins); + + + + +is_deeply(\@plugins, \@expected, "is deeply class"); + + + +package MyOtherTest; + +use strict; +use Module::Pluggable; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works.t new file mode 100755 index 0000000..f748344 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works.t @@ -0,0 +1,42 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 5; + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Foo MyTest::Plugin::Quux::Foo); +ok(@plugins = sort $foo->plugins); + + + +is_deeply(\@plugins, \@expected, "is deeply"); + +@plugins = (); + +ok(@plugins = sort MyTest->plugins); + + + + +is_deeply(\@plugins, \@expected, "is deeply class"); + + + +package MyTest; + +use strict; +use Module::Pluggable; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works_taint.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works_taint.t new file mode 100755 index 0000000..0e1baa3 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/02works_taint.t @@ -0,0 +1,41 @@ +#!perl -wT + +# NOTE: Module::Pluggable is going into core +# and CORE tests can't modify @INC under taint +# so this is a work around to make sure it +# still works under taint checking. + +use strict; +use Test::More tests => 5; + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Module::Pluggable::Object); +ok(@plugins = sort $foo->plugins); + + +ok(grep {/Module::Pluggable::Object/} @plugins, "Contains Module::Pluggable::Object"); + +@plugins = (); + +ok(@plugins = sort MyTest->plugins); + +ok(grep {/Module::Pluggable::Object/} @plugins, "Contains Module::Pluggable::Object under class method"); + + + +package MyTest; + +use strict; +use Module::Pluggable search_path => 'Module::Pluggable'; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/03diffname.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/03diffname.t new file mode 100755 index 0000000..d449fd0 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/03diffname.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Foo MyTest::Plugin::Quux::Foo); +ok(@plugins = sort $foo->foo); +is_deeply(\@plugins, \@expected); + + + +package MyTest; + +use strict; +use Module::Pluggable ( sub_name => 'foo'); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir.t new file mode 100644 index 0000000..e2572fe --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Acme::MyTest::Plugin::Foo); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable search_path => ["Acme::MyTest::Plugin"], search_dirs => [ "t/acme" ]; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir_single.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir_single.t new file mode 100644 index 0000000..adc5304 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmedir_single.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Acme::MyTest::Plugin::Foo); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable search_path => "Acme::MyTest::Plugin", search_dirs => "t/acme" ; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath.t new file mode 100755 index 0000000..540158c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Acme::MyTest::Plugin::Foo); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable (search_path => ["Acme::MyTest::Plugin"]); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath_single.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath_single.t new file mode 100644 index 0000000..976e77e --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/04acmepath_single.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Acme::MyTest::Plugin::Foo); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable search_path => "Acme::MyTest::Plugin"; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/05postpath.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/05postpath.t new file mode 100755 index 0000000..08c4052 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/05postpath.t @@ -0,0 +1,31 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(MyTest::Extend::Plugin::Bar); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable (search_path => ["MyTest::Extend::Plugin"]); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/06multipath.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/06multipath.t new file mode 100755 index 0000000..6f74591 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/06multipath.t @@ -0,0 +1,33 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(Acme::MyTest::Plugin::Foo MyTest::Extend::Plugin::Bar); +ok(@plugins = sort $foo->plugins); + +is_deeply(\@plugins, \@expected); + + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use File::Spec::Functions qw(catdir); +use Module::Pluggable (search_path => ["MyTest::Extend::Plugin", "Acme::MyTest::Plugin"]); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/07instantiate.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/07instantiate.t new file mode 100755 index 0000000..352d4d0 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/07instantiate.t @@ -0,0 +1,40 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 6; + +my $foo; +ok($foo = MyTest->new()); + + + +my @plugins; +ok(@plugins = sort $foo->booga(nork => 'fark')); +is(ref $plugins[0],'MyTest::Extend::Plugin::Bar'); +is($plugins[0]->nork,'fark'); + + +@plugins = (); +eval { @plugins = $foo->wooga( nork => 'fark') }; +is($@, ''); +is(scalar(@plugins),0); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Module::Pluggable (search_path => ["MyTest::Extend::Plugin"], sub_name => 'booga', instantiate => 'new'); +use Module::Pluggable (search_path => ["MyTest::Extend::Plugin"], sub_name => 'wooga', instantiate => 'nosomuchmethod'); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/08nothing.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/08nothing.t new file mode 100755 index 0000000..f5c6487 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/08nothing.t @@ -0,0 +1,30 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 2; + + +my $foo; +ok($foo = MyTest->new()); + +my @expected = (); +my @plugins = sort $foo->plugins; +is_deeply(\@plugins, \@expected); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable (search_path => ["No::Such::Modules"]); +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/09require.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/09require.t new file mode 100755 index 0000000..af5de5f --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/09require.t @@ -0,0 +1,29 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 2; + +my $t = MyTest->new(); + + +ok($t->plugins()); + +ok(keys %{MyTest::Plugin::Foo::}); + + +package MyTest; +use File::Spec::Functions qw(catdir); +use strict; +use Module::Pluggable (require => 1); +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack.t new file mode 100644 index 0000000..0653fc8 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack.t @@ -0,0 +1,35 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 4; + + + +my $t = InnerTest->new(); + +my %plugins = map { $_ => 1 } $t->plugins; + +ok(keys %plugins, "Got some plugins"); +ok($plugins{'InnerTest::Plugin::Foo'}, "Got Foo"); +ok($plugins{'InnerTest::Plugin::Bar'}, "Got Bar - the inner package"); +ok($plugins{'InnerTest::Plugin::Quux'}, "Got Quux - the other inner package"); + + + +package InnerTest; +use strict; +use Module::Pluggable require => 1; +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_inner.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_inner.t new file mode 100644 index 0000000..054d9b6 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_inner.t @@ -0,0 +1,34 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + + +my $t = InnerTest->new(); + +my %plugins = map { $_ => 1 } $t->plugins; + +ok(keys %plugins, "Got some plugins"); +ok($plugins{'InnerTest::Plugin::Foo'}, "Got Foo"); +ok($plugins{'InnerTest::Plugin::Bar'}, "Got Bar - the inner package"); + + + +package InnerTest; +use strict; +use Module::Pluggable inner => 1; +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_noinner.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_noinner.t new file mode 100644 index 0000000..1d670b0 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_noinner.t @@ -0,0 +1,34 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + + +my $t = InnerTest->new(); + +my %plugins = map { $_ => 1 } $t->plugins; + +ok(keys %plugins, "Got some plugins"); +ok($plugins{'InnerTest::Plugin::Foo'}, "Got Foo"); +ok(!$plugins{'InnerTest::Plugin::Bar'}, "Didn't get Bar - the inner package"); + + + +package InnerTest; +use strict; +use Module::Pluggable require => 1, inner => 0; +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_override.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_override.t new file mode 100644 index 0000000..f9e863e --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_override.t @@ -0,0 +1,34 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + + + +my $t = InnerTest->new(); + +my %plugins = map { $_ => 1 } $t->plugins; + +ok(keys %plugins, "Got some plugins"); +ok($plugins{'InnerTest::Plugin::Foo'}, "Got Foo"); +ok($plugins{'InnerTest::Plugin::Bar'}, "Got Bar - the inner package"); + + + +package InnerTest; +use strict; +use Module::Pluggable require => 0, inner => 1; +use base qw(Module::Pluggable); + + +sub new { + my $class = shift; + return bless {}, $class; + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_super.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_super.t new file mode 100644 index 0000000..e9a58bd --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/10innerpack_super.t @@ -0,0 +1,29 @@ +#!perl -wT + +use Test::More tests => 3; +use strict; +use_ok('Devel::InnerPackage'); +Bar->whee; +is_deeply([Devel::InnerPackage::list_packages("Bar")],[], "Don't pick up ::SUPER pseudo stash"); +is_deeply([Devel::InnerPackage::list_packages("Foo")],['Foo::Bar'], "Still pick up other inner package"); + +package Foo; + +sub whee { + 1; +} + +package Foo::Bar; + +sub whee {} + +package Bar; +use base 'Foo'; + +sub whee { + shift->SUPER::whee; + 2; +} + + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/11usetwice.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/11usetwice.t new file mode 100644 index 0000000..8240318 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/11usetwice.t @@ -0,0 +1,44 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 3; + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(MyTest::Extend::Plugin::Bar MyTest::Plugin::Bar MyTest::Plugin::Foo MyTest::Plugin::Quux::Foo); + +push @plugins, $foo->plugins; +push @plugins, $foo->foo; + +@plugins = sort @plugins; +is_deeply(\@plugins, \@expected); + +@plugins = (); + +push @plugins, MyTest->plugins; +push @plugins, MyTest->foo; +@plugins = sort @plugins; +is_deeply(\@plugins, \@expected); + + + +package MyTest; + +use strict; +use Module::Pluggable; +use Module::Pluggable ( search_path => [ "MyTest::Extend::Plugin" ] , sub_name => 'foo' ); + + +sub new { + my $class = shift; + return bless {}, $class; + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12only.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12only.t new file mode 100644 index 0000000..1150b60 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12only.t @@ -0,0 +1,64 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable only => "MyTest::Plugin::Foo"; + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->only("MyTest::Plugin::Foo"); + + return $self; +} +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyarray.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyarray.t new file mode 100644 index 0000000..a37e777 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyarray.t @@ -0,0 +1,65 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable only => [ "MyTest::Plugin::Foo" ]; + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->only(["MyTest::Plugin::Foo"]); + + return $self; +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyregex.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyregex.t new file mode 100644 index 0000000..78a9bd5 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/12onlyregex.t @@ -0,0 +1,65 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Foo); + ok(@plugins = sort $foo->plugins); + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable only => qr/MyTest::Plugin::Foo$/; + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->only(qr/MyTest::Plugin::Foo$/); + + return $self; +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13except.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13except.t new file mode 100644 index 0000000..e08ffa9 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13except.t @@ -0,0 +1,68 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable except => "MyTest::Plugin::Foo"; + + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->except("MyTest::Plugin::Foo"); + + return $self; +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptarray.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptarray.t new file mode 100644 index 0000000..ec61ff4 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptarray.t @@ -0,0 +1,68 @@ +#!perl -wT + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable except => [ "MyTest::Plugin::Foo" ]; + + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->except(["MyTest::Plugin::Foo"]); + + return $self; +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptregex.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptregex.t new file mode 100644 index 0000000..2d842b3 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/13exceptregex.t @@ -0,0 +1,68 @@ +#!perl -wT + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 10; + +{ + my $foo; + ok($foo = MyTest->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTest->plugins); + is_deeply(\@plugins, \@expected); +} + +{ + my $foo; + ok($foo = MyTestSub->new()); + + my @plugins; + my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Quux::Foo); + ok(@plugins = sort $foo->plugins); + + is_deeply(\@plugins, \@expected); + + @plugins = (); + + ok(@plugins = sort MyTestSub->plugins); + is_deeply(\@plugins, \@expected); +} + +package MyTest; + +use strict; +use Module::Pluggable except => qr/MyTest::Plugin::Foo/; + + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +package MyTestSub; + +use strict; +use Module::Pluggable search_path => "MyTest::Plugin"; + + +sub new { + my $class = shift; + my $self = bless {}, $class; + + $self->except(qr/MyTest::Plugin::Foo/); + + return $self; +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/14package.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/14package.t new file mode 100644 index 0000000..aaca94c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/14package.t @@ -0,0 +1,34 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 5; + +my $foo; +ok($foo = MyTest->new()); + +my @plugins; +my @expected = qw(MyTest::Plugin::Bar MyTest::Plugin::Foo MyTest::Plugin::Quux::Foo); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected); + +@plugins = (); + +ok(@plugins = sort MyTest->plugins); +is_deeply(\@plugins, \@expected); + + + +package MyTest; +use strict; +sub new { return bless {}, $_[0] } + +package MyOtherTest; +use strict; +use Module::Pluggable ( package => "MyTest" ); +sub new { return bless {}, $_[0] } + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/15topicsafe.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/15topicsafe.t new file mode 100644 index 0000000..49305f2 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/15topicsafe.t @@ -0,0 +1,16 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More 'no_plan'; + +use Module::Pluggable search_path => 'Acme::MyTest'; + +my $topic = "topic"; + +for ($topic) { + main->plugins; +} + +is($topic, 'topic', "we've got the right topic"); diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/16different_extension.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/16different_extension.t new file mode 100755 index 0000000..f628a7c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/16different_extension.t @@ -0,0 +1,42 @@ +#!perl -w + +use strict; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Test::More tests => 5; + +my $foo; +ok($foo = ExtTest->new()); + +my @plugins; +my @expected = qw(ExtTest::Plugin::Bar ExtTest::Plugin::Foo ExtTest::Plugin::Quux::Foo); +ok(@plugins = sort $foo->plugins); + + + +is_deeply(\@plugins, \@expected, "is deeply"); + +@plugins = (); + +ok(@plugins = sort ExtTest->plugins); + + + + +is_deeply(\@plugins, \@expected, "is deeply class"); + + + +package ExtTest; + +use strict; +use Module::Pluggable file_regex => qr/\.plugin$/; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/17devel_inner_package.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/17devel_inner_package.t new file mode 100644 index 0000000..30f3256 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/17devel_inner_package.t @@ -0,0 +1,15 @@ +#!perl -w +use Test::More tests => 3; + +use Devel::InnerPackage qw(list_packages); +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); + +my @packages; + +use_ok("TA::C::A::I"); +ok(@packages = list_packages("TA::C::A::I")); + +is_deeply([sort @packages], [qw(TA::C::A::I::A TA::C::A::I::A::B)]); + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/18skipped_package.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/18skipped_package.t new file mode 100644 index 0000000..c580d68 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/18skipped_package.t @@ -0,0 +1,11 @@ +#!perl -w + +use Test::More tests => 1; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); + +use Devel::InnerPackage qw(list_packages); +use No::Middle; + +my @p = list_packages("No::Middle"); +is_deeply([ sort @p ], [ qw(No::Middle::Package::A No::Middle::Package::B) ]); diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/19can_ok_clobber.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/19can_ok_clobber.t new file mode 100644 index 0000000..07c598b --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/19can_ok_clobber.t @@ -0,0 +1,50 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Data::Dumper; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); + +use Test::More tests=>5; + +#use_ok( 'MyTest' ); +#diag "Module::Pluggable::VERSION $Module::Pluggable::VERSION"; + +my @plugins = MyTest->plugins; +my @plugins_after; + +use_ok( 'MyTest::Plugin::Foo' ); +ok( my $foo = MyTest::Plugin::Foo->new() ); + +@plugins_after = MyTest->plugins; +is_deeply( + \@plugins_after, + \@plugins, + "plugins haven't been clobbered", +); + +can_ok ($foo, 'frobnitz'); + +@plugins_after = MyTest->plugins; +is_deeply( + \@plugins_after, + \@plugins, + "plugins haven't been clobbered", +) or diag Dumper ; + + + +package MyTest; + +use strict; +use Module::Pluggable; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/20dodgy_files.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/20dodgy_files.t new file mode 100755 index 0000000..8c0eb8e --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/20dodgy_files.t @@ -0,0 +1,84 @@ +#!perl -w + +BEGIN { + if ($^O eq 'VMS' || $^O eq 'VOS') { + print "1..0 # Skip: can't handle misspelled plugin names\n"; + exit; + } +} + +use strict; +use FindBin; +use Test::More; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use File::Spec::Functions qw(catfile); + + +my ($dodgy_file) = (catfile($FindBin::Bin, "lib", "OddTest", "Plugin", "-Dodgy.pm")=~/^(.*)$/); +unless (-f $dodgy_file) { + plan skip_all => "Can't handle misspelled plugin names\n"; +} else { + plan tests => 5; +} + + +my $foo; +ok($foo = OddTest->new()); + +my @plugins; +my @expected = ('OddTest::Plugin::-Dodgy', 'OddTest::Plugin::Foo'); +ok(@plugins = sort $foo->plugins); +is_deeply(\@plugins, \@expected, "is deeply"); + +my @odd_plugins; +my @odd_expected = qw(OddTest::Plugin::Foo); +ok(@odd_plugins = sort $foo->odd_plugins); +is_deeply(\@odd_plugins, \@odd_expected, "is deeply"); + + +package OddTest::Pluggable; + +use Data::Dumper; +use base qw(Module::Pluggable::Object); + + +sub find_files { + my $self = shift; + my @files = $self->SUPER::find_files(@_); + return grep { !/(^|\/)-/ } $self->SUPER::find_files(@_) ; +} + +package OddTest; + +use strict; +use Module::Pluggable; + + +sub new { + my $class = shift; + return bless {}, $class; + +} + +sub odd_plugins { + my $self = shift; + my %opts; + my ($pkg, $file) = caller; + # the default name for the method is 'plugins' + my $sub = $opts{'sub_name'} || 'plugins'; + # get our package + my ($package) = $opts{'package'} || "OddTest"; + $opts{filename} = $file; + $opts{package} = $package; + + + + my $op = OddTest::Pluggable->new( package => ref($self) ); + return $op->plugins(@_); + + +} + + +1; + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/21editor_junk.t b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/21editor_junk.t new file mode 100644 index 0000000..5f4b52b --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/21editor_junk.t @@ -0,0 +1,53 @@ +#!perl -w + +use Test::More; +use FindBin; +use lib (($FindBin::Bin."/lib")=~/^(.*)$/); +use Module::Pluggable::Object; +use File::Spec::Functions qw(catfile); + +my ($dodgy_file) = (catfile($FindBin::Bin,"lib", "EditorJunk", "Plugin", "#Bar.pm#")=~/^(.*)$/); +unless (-f $dodgy_file) { + plan skip_all => "Can't handle plugin names with octothorpes\n"; +} else { + plan tests => 4; +} + + + +my $foo; +ok($foo = EditorJunk->new()); + +my @plugins; +my @expected = qw(EditorJunk::Plugin::Bar EditorJunk::Plugin::Foo); +ok(@plugins = sort $foo->plugins); + +is_deeply(\@plugins, \@expected, "is deeply"); + + +my $mpo = Module::Pluggable::Object->new( + package => 'EditorJunk', + filename => __FILE__, + include_editor_junk => 1, +); + +@expected = ('EditorJunk::Plugin::.#Bar', 'EditorJunk::Plugin::Bar', 'EditorJunk::Plugin::Foo'); +@plugins = sort $mpo->plugins(); +is_deeply(\@plugins, \@expected, "is deeply"); + + + +package EditorJunk; + +use strict; +use Module::Pluggable; + + +sub new { + my $class = shift; + return bless {}, $class; + +} +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/acme/Acme/MyTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/acme/Acme/MyTest/Plugin/Foo.pm new file mode 100644 index 0000000..29c888b --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/acme/Acme/MyTest/Plugin/Foo.pm @@ -0,0 +1,9 @@ +package Acme::MyTest::Plugin::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/Acme/MyTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/Acme/MyTest/Plugin/Foo.pm new file mode 100755 index 0000000..29c888b --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/Acme/MyTest/Plugin/Foo.pm @@ -0,0 +1,9 @@ +package Acme::MyTest::Plugin::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm new file mode 100644 index 0000000..dcc870c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm @@ -0,0 +1,9 @@ +package EditorJunk::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swo b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swo new file mode 100644 index 0000000..dcc870c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swo @@ -0,0 +1,9 @@ +package EditorJunk::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swp b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swp new file mode 100644 index 0000000..dcc870c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm.swp @@ -0,0 +1,9 @@ +package EditorJunk::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm~ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm~ new file mode 100644 index 0000000..dcc870c --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Bar.pm~ @@ -0,0 +1,9 @@ +package EditorJunk::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Foo.pm new file mode 100644 index 0000000..64b8bf4 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/EditorJunk/Plugin/Foo.pm @@ -0,0 +1,9 @@ +package EditorJunk::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Bar.plugin b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Bar.plugin new file mode 100755 index 0000000..2f9b6db --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Bar.plugin @@ -0,0 +1,9 @@ +package MyTest::Plugin::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Foo.plugin b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Foo.plugin new file mode 100755 index 0000000..5386ba5 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Foo.plugin @@ -0,0 +1,9 @@ +package MyTest::Plugin::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Quux/Foo.plugin b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Quux/Foo.plugin new file mode 100755 index 0000000..bb6e086 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/ExtTest/Plugin/Quux/Foo.plugin @@ -0,0 +1,9 @@ +package MyTest::Plugin::Quux::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/InnerTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/InnerTest/Plugin/Foo.pm new file mode 100644 index 0000000..4f5825e --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/InnerTest/Plugin/Foo.pm @@ -0,0 +1,17 @@ +package InnerTest::Plugin::Foo; +use strict; + +our $FOO = 1; + +package InnerTest::Plugin::Bar; +use strict; + +sub bar {} + +package InnerTest::Plugin::Quux; +use strict; +use base qw(InnerTest::Plugin::Bar); + + + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Bar.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Bar.pm new file mode 100644 index 0000000..3c5d79d --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Bar.pm @@ -0,0 +1,5 @@ +package MyOtherTest::Plugin::Bar; +use strict; +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Foo.pm new file mode 100644 index 0000000..1482572 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Foo.pm @@ -0,0 +1,5 @@ +package MyOtherTest::Plugin::Foo; +use strict; +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux.pm new file mode 100644 index 0000000..22fd55d --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux.pm @@ -0,0 +1,5 @@ +package MyOtherTest::Plugin::Quux; +use strict; +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux/Foo.pm new file mode 100644 index 0000000..a8ecd69 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyOtherTest/Plugin/Quux/Foo.pm @@ -0,0 +1,5 @@ +package MyOtherTest::Plugin::Quux::Foo; +use strict; +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Extend/Plugin/Bar.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Extend/Plugin/Bar.pm new file mode 100755 index 0000000..6d112cf --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Extend/Plugin/Bar.pm @@ -0,0 +1,17 @@ +package MyTest::Extend::Plugin::Bar; +use strict; + +sub new { + my $class = shift; + my %self = @_; + + return bless \%self, $class; +} + + +sub nork { + return $_[0]->{'nork'}; +} +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Bar.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Bar.pm new file mode 100755 index 0000000..2f9b6db --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Bar.pm @@ -0,0 +1,9 @@ +package MyTest::Plugin::Bar; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Foo.pm new file mode 100755 index 0000000..6ca8317 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Foo.pm @@ -0,0 +1,10 @@ +package MyTest::Plugin::Foo; + + +use strict; + +sub new { return bless {}, $_[0]; } +sub frobnitz {} +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Quux/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Quux/Foo.pm new file mode 100755 index 0000000..bb6e086 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/MyTest/Plugin/Quux/Foo.pm @@ -0,0 +1,9 @@ +package MyTest::Plugin::Quux::Foo; + + +use strict; + + +1; + + diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/No/Middle.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/No/Middle.pm new file mode 100644 index 0000000..9d0e31a --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/No/Middle.pm @@ -0,0 +1,14 @@ +package No::Middle; + +sub foo {} + +package No::Middle::Package::A; + +sub foo {} + + +package No::Middle::Package::B; + +sub foo {} + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/OddTest/Plugin/Foo.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/OddTest/Plugin/Foo.pm new file mode 100644 index 0000000..bcf37e3 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/OddTest/Plugin/Foo.pm @@ -0,0 +1,5 @@ +package OddFiles/Plugin/Foo.pm + +sub new {} + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/TA/C/A/I.pm b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/TA/C/A/I.pm new file mode 100644 index 0000000..35575df --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl-3.8/t/lib/TA/C/A/I.pm @@ -0,0 +1,13 @@ +package TA::C::A::I; + +sub foo { } + +package TA::C::A::I::A; + +sub foo { } + +package TA::C::A::I::A::B; + +sub foo { } + +1; diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.diff.gz b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..6aec056403130fabd4e6b58a8bebb995b4d2c741 GIT binary patch literal 3002 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 literal 0 HcmV?d00001 diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.dsc b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.dsc new file mode 100644 index 0000000..5030e8d --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1.dsc @@ -0,0 +1,27 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Format: 1.0 +Source: libmodule-pluggable-perl +Binary: libmodule-pluggable-perl +Architecture: all +Version: 3.8-1 +Maintainer: Debian Perl Group +Uploaders: Niko Tyni , Krzysztof Krzyzaniak (eloy) , gregor herrmann +Homepage: http://search.cpan.org/dist/Module-Pluggable/ +Standards-Version: 3.7.3 +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libmodule-pluggable-perl/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libmodule-pluggable-perl/ +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: perl (>= 5.6.0-16), perl-modules +Files: + 661e2c71c824419c37775998c63b0f85 16889 libmodule-pluggable-perl_3.8.orig.tar.gz + 0bb3ae07a75d1ed467ba87f9dfbf8f24 3002 libmodule-pluggable-perl_3.8-1.diff.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQFH3tTcHqjlqpcl9jsRAmGpAJ0c1TIaUyBSuc+EVg4Ansj8OF2PbACcDlnv +wVlKvV13Gdp0B43UGrxp374= +=N5AC +-----END PGP SIGNATURE----- diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1.diff.gz b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..5049b806aafc64b7bf8f317e58bca6262fe293a6 GIT binary patch literal 3043 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 +Architecture: all +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: perl (>= 5.6.0-16), perl-modules +Uploaders: Niko Tyni , Krzysztof Krzyzaniak (eloy) , gregor herrmann +Files: + 661e2c71c824419c37775998c63b0f85 16889 libmodule-pluggable-perl_3.8.orig.tar.gz + 484109f05cb7a0dcb9cbaf47ce3ccae8 3043 libmodule-pluggable-perl_3.8-1maemo1.diff.gz diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_i386.changes b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_i386.changes new file mode 100644 index 0000000..6c336d7 --- /dev/null +++ b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Fri, 16 Apr 2010 06:45:02 +0100 +Source: libmodule-pluggable-perl +Binary: libmodule-pluggable-perl +Architecture: source all +Version: 3.8-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libmodule-pluggable-perl - Automatically provide your module the ability to accept plugins +Changes: + libmodule-pluggable-perl (3.8-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 41e6ad5b4063082d7f058d44f70f380a 609 perl optional libmodule-pluggable-perl_3.8-1maemo1.dsc + 484109f05cb7a0dcb9cbaf47ce3ccae8 3043 perl optional libmodule-pluggable-perl_3.8-1maemo1.diff.gz + 9b27b2c85e412b79f6b1790f6a34b400 23308 perl optional libmodule-pluggable-perl_3.8-1maemo1_all.deb diff --git a/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8.orig.tar.gz b/deb-src/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e2ec216495b02d1a76e99dfb47c6af9334444c1d GIT binary patch literal 16889 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 E05ize;{X5v literal 0 HcmV?d00001 diff --git a/deb/pool/main/libm/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_all.deb b/deb/pool/main/libm/libmodule-pluggable-perl/libmodule-pluggable-perl_3.8-1maemo1_all.deb new file mode 100644 index 0000000000000000000000000000000000000000..f63cb27aa1bfe38bc6a6d27c66eb2d6c139ea725 GIT binary patch literal 23308 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 $date\n\nl"; + print " -- Nito Martinez $date\n\n"; print "$_"; $begin=0; } else { -- 1.7.9.5