[libcache-perl] 15/28: Imported Upstream version 2.08
dom at earth.li
dom at earth.li
Sat Oct 4 17:27:42 UTC 2014
This is an automated email from the git hooks/post-receive script.
dom pushed a commit to branch master
in repository libcache-perl.
commit a00b5567cf0269023203407bcc0cffbb1137f46f
Author: Dominic Hargreaves <dom at earth.li>
Date: Sun Feb 2 15:40:11 2014 +0000
Imported Upstream version 2.08
---
Build.PL | 61 +++++++
Changes | 38 +++++
MANIFEST | 49 +++++-
MANIFEST.SKIP | 9 +
META.json | 126 ++++++++++++++
META.yml | 113 ++++++++++---
Makefile.PL | 25 ---
README | 9 +-
inc/Devel/AssertOS.pm | 104 ++++++++++++
inc/Devel/AssertOS/AIX.pm | 22 +++
inc/Devel/AssertOS/BSDOS.pm | 22 +++
inc/Devel/AssertOS/DGUX.pm | 22 +++
inc/Devel/AssertOS/DragonflyBSD.pm | 22 +++
inc/Devel/AssertOS/Dynix.pm | 22 +++
inc/Devel/AssertOS/FreeBSD.pm | 22 +++
inc/Devel/AssertOS/HPUX.pm | 22 +++
inc/Devel/AssertOS/Interix.pm | 22 +++
inc/Devel/AssertOS/Irix.pm | 22 +++
inc/Devel/AssertOS/Linux.pm | 22 +++
inc/Devel/AssertOS/MacOSX.pm | 22 +++
inc/Devel/AssertOS/MachTen.pm | 29 ++++
inc/Devel/AssertOS/MidnightBSD.pm | 20 +++
inc/Devel/AssertOS/MirOSBSD.pm | 22 +++
inc/Devel/AssertOS/NetBSD.pm | 22 +++
inc/Devel/AssertOS/OSF.pm | 24 +++
inc/Devel/AssertOS/OpenBSD.pm | 22 +++
inc/Devel/AssertOS/QNX.pm | 28 ++++
inc/Devel/AssertOS/QNX/Neutrino.pm | 24 +++
inc/Devel/AssertOS/QNX/v4.pm | 24 +++
inc/Devel/AssertOS/SCO.pm | 22 +++
inc/Devel/AssertOS/Solaris.pm | 22 +++
inc/Devel/AssertOS/SunOS.pm | 22 +++
inc/Devel/AssertOS/SysVr4.pm | 22 +++
inc/Devel/AssertOS/SysVr5.pm | 22 +++
inc/Devel/AssertOS/Unicos.pm | 22 +++
inc/Devel/AssertOS/Unix.pm | 40 +++++
inc/Devel/CheckOS.pm | 335 +++++++++++++++++++++++++++++++++++++
inc/Test/Run/Builder.pm | 76 +++++++++
lib/Cache.pm | 16 +-
lib/Cache/Entry.pm | 4 +-
lib/Cache/File.pm | 10 +-
lib/Cache/File/Entry.pm | 8 +-
lib/Cache/File/Heap.pm | 2 +-
lib/Cache/IOString.pm | 2 +-
lib/Cache/Memory.pm | 25 ++-
lib/Cache/Memory/Entry.pm | 4 +-
lib/Cache/Null.pm | 2 +-
lib/Cache/Null/Entry.pm | 2 +-
lib/Cache/RemovalStrategy.pm | 4 +-
lib/Cache/Tester.pm | 13 +-
scripts/bump-version-number.pl | 35 ++++
t/memory_set_namespace_rt32339.t | 21 +++
t/pod.t | 6 +
t/style-trailing-space.t | 29 ++++
54 files changed, 1664 insertions(+), 93 deletions(-)
diff --git a/Build.PL b/Build.PL
new file mode 100644
index 0000000..f6e98f6
--- /dev/null
+++ b/Build.PL
@@ -0,0 +1,61 @@
+use strict;
+use warnings;
+
+use lib "./inc";
+use Devel::AssertOS qw(Unix);
+
+use Test::Run::Builder;
+
+my $builder = Test::Run::Builder->new(
+ module_name => 'Cache',
+ license => 'perl',
+ dist_author => 'Chris Leishman <chris at leishman.org>',
+ dist_version_from => 'lib/Cache.pm',
+ dist_abstract => "Provide a generic Cache mechanism.",
+ requires =>
+ {
+ 'DB_File' => '1.72',
+ 'Date::Parse' => '2.24',
+ 'Digest::SHA1' => '2.01',
+ 'Fcntl' => '1.03',
+ 'File::Find' => '0',
+ 'File::NFSLock' => '1.20',
+ 'File::Path' => '1.00',
+ 'File::Spec' => '0.8',
+ 'Heap::Fibonacci' => '0.01',
+ 'IO::File' => '1.08',
+ 'IO::Handle' => '1.21',
+ 'IO::String' => '1.02',
+ 'Storable' => '1.00',
+ 'Symbol' => '1.02',
+ 'Test::More' => '0.45',
+ 'perl' => '5.006',
+ },
+ configure_requires =>
+ {
+ 'Module::Build' => 0,
+ },
+ add_to_cleanup => [ 'Cache-*' ],
+ meta_merge =>
+ {
+ resources =>
+ {
+ repository => "http://bitbucket.org/shlomif/web-cpan",
+ },
+ keywords =>
+ [
+ 'cache',
+ 'caching',
+ 'file',
+ 'generic',
+ 'memory',
+ 'optimisation',
+ 'optimise',
+ 'optimization',
+ 'optimize',
+ 'speed',
+ ],
+ },
+);
+
+$builder->create_build_script();
diff --git a/Changes b/Changes
index 802cbb3..afecdb8 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,41 @@
+2014-01-26
+ - Convert from use "warnings::register;" to "use warnings;".
+ - Bugfix/maintenace release (2.08)
+
+2014-01-26
+ - Add perl to the prereq in META.yml/META.json
+ - Kwalitee / CPANTS
+ - Bugfix/maintenace release (2.07)
+
+2013-09-13
+ - Increase the delay of the cache invalidation in the tests by default to
+ avoid test failures due to high load.
+ - https://rt.cpan.org/Public/Bug/Display.html?id=27280
+ - One can set the PERL_CACHE_PM_TESTING environment variable to a true
+ value to set it back at a quicker-to-run 1 second delay.
+ - Thanks to ANDK for reporting it.
+ - Fix Bug in Cache::Memory regarding Namespaces
+ - https://rt.cpan.org/Ticket/Display.html?id=32339 .
+ - ->set after ->set_namespace failed.
+ - Thanks to justin at techadvise.com for the report and for a proposed
+ fix.
+ - Get rid of trailing space.
+ - Add t/style-trailing-space.t
+ - Bugfix/maintenance release (2.06)
+
+2013-09-05
+ - Add t/pod.t and got the embedded PODs to validate.
+ - Convert the Build system to Module-Build.
+ - Fix https://rt.cpan.org/Ticket/Display.html?id=78817
+ - Fix a warning for lc called with undef value
+ when "-w" is specified - during some tests.
+ - Tests fail or get stuck on Windows - use Devel::AssertOS to make sure
+ we don't build there.
+ - https://rt.cpan.org/Ticket/Display.html?id=81386
+ - if a kind soul will fix the tests and/or the code on MSWin, we will
+ remove it.
+ - Bugfix/maintenance release (2.05)
+
2006-02-01
- Bugfix release (2.04)
- Fix for failure to call load_callback when verify_callback
diff --git a/MANIFEST b/MANIFEST
index 4f22ce0..53f0d49 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,11 +1,36 @@
+Build.PL
Changes
-LICENSE
-MANIFEST
-MANIFEST.SKIP
-Makefile.PL
-README
-TODO
design.dia
+inc/Devel/AssertOS.pm
+inc/Devel/AssertOS/AIX.pm
+inc/Devel/AssertOS/BSDOS.pm
+inc/Devel/AssertOS/DGUX.pm
+inc/Devel/AssertOS/DragonflyBSD.pm
+inc/Devel/AssertOS/Dynix.pm
+inc/Devel/AssertOS/FreeBSD.pm
+inc/Devel/AssertOS/HPUX.pm
+inc/Devel/AssertOS/Interix.pm
+inc/Devel/AssertOS/Irix.pm
+inc/Devel/AssertOS/Linux.pm
+inc/Devel/AssertOS/MachTen.pm
+inc/Devel/AssertOS/MacOSX.pm
+inc/Devel/AssertOS/MidnightBSD.pm
+inc/Devel/AssertOS/MirOSBSD.pm
+inc/Devel/AssertOS/NetBSD.pm
+inc/Devel/AssertOS/OpenBSD.pm
+inc/Devel/AssertOS/OSF.pm
+inc/Devel/AssertOS/QNX.pm
+inc/Devel/AssertOS/QNX/Neutrino.pm
+inc/Devel/AssertOS/QNX/v4.pm
+inc/Devel/AssertOS/SCO.pm
+inc/Devel/AssertOS/Solaris.pm
+inc/Devel/AssertOS/SunOS.pm
+inc/Devel/AssertOS/SysVr4.pm
+inc/Devel/AssertOS/SysVr5.pm
+inc/Devel/AssertOS/Unicos.pm
+inc/Devel/AssertOS/Unix.pm
+inc/Devel/CheckOS.pm
+inc/Test/Run/Builder.pm
lib/Cache.pm
lib/Cache/Entry.pm
lib/Cache/File.pm
@@ -22,6 +47,13 @@ lib/Cache/RemovalStrategy.pm
lib/Cache/RemovalStrategy/FIFO.pm
lib/Cache/RemovalStrategy/LRU.pm
lib/Cache/Tester.pm
+LICENSE
+MANIFEST
+MANIFEST.SKIP
+META.json
+META.yml Module meta-data (added by MakeMaker)
+README
+scripts/bump-version-number.pl
t/00basic.t
t/01fileheap.t
t/file.t
@@ -31,6 +63,9 @@ t/file_tie.t
t/memory.t
t/memory_fifo.t
t/memory_lru.t
+t/memory_set_namespace_rt32339.t
t/memory_tie.t
t/null.t
-META.yml Module meta-data (added by MakeMaker)
+t/pod.t
+t/style-trailing-space.t
+TODO
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
index 9b291f0..c280bd2 100644
--- a/MANIFEST.SKIP
+++ b/MANIFEST.SKIP
@@ -1,8 +1,17 @@
+^_build/
+^Build$
\bCVS\b
^Makefile$
^Makefile.old$
^MANIFEST.bak$
^blib/
+^\.git/
+^Cache-\d
pm_to_blib
.cvsignore
.swp$
+~$
+^\.gitignore$
+^MYMETA\.yml$
+^MYMETA\.json$
+^tags$
diff --git a/META.json b/META.json
new file mode 100644
index 0000000..07fee07
--- /dev/null
+++ b/META.json
@@ -0,0 +1,126 @@
+{
+ "abstract" : "Provide a generic Cache mechanism.",
+ "author" : [
+ "Chris Leishman <chris at leishman.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "Module::Build version 0.4007, CPAN::Meta::Converter version 2.132830",
+ "keywords" : [
+ "cache",
+ "caching",
+ "file",
+ "generic",
+ "memory",
+ "optimisation",
+ "optimise",
+ "optimization",
+ "optimize",
+ "speed"
+ ],
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Cache",
+ "prereqs" : {
+ "configure" : {
+ "requires" : {
+ "Module::Build" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "DB_File" : "1.72",
+ "Date::Parse" : "2.24",
+ "Digest::SHA1" : "2.01",
+ "Fcntl" : "1.03",
+ "File::Find" : "0",
+ "File::NFSLock" : "1.20",
+ "File::Path" : "1.00",
+ "File::Spec" : "0.8",
+ "Heap::Fibonacci" : "0.01",
+ "IO::File" : "1.08",
+ "IO::Handle" : "1.21",
+ "IO::String" : "1.02",
+ "Storable" : "1.00",
+ "Symbol" : "1.02",
+ "Test::More" : "0.45",
+ "perl" : "5.006"
+ }
+ }
+ },
+ "provides" : {
+ "Cache" : {
+ "file" : "lib/Cache.pm",
+ "version" : "2.08"
+ },
+ "Cache::Entry" : {
+ "file" : "lib/Cache/Entry.pm",
+ "version" : "2.08"
+ },
+ "Cache::File" : {
+ "file" : "lib/Cache/File.pm",
+ "version" : "2.08"
+ },
+ "Cache::File::Entry" : {
+ "file" : "lib/Cache/File/Entry.pm",
+ "version" : "2.08"
+ },
+ "Cache::File::Handle" : {
+ "file" : "lib/Cache/File/Handle.pm"
+ },
+ "Cache::File::Heap" : {
+ "file" : "lib/Cache/File/Heap.pm",
+ "version" : "2.08"
+ },
+ "Cache::IOString" : {
+ "file" : "lib/Cache/IOString.pm"
+ },
+ "Cache::Memory" : {
+ "file" : "lib/Cache/Memory.pm",
+ "version" : "2.08"
+ },
+ "Cache::Memory::Entry" : {
+ "file" : "lib/Cache/Memory/Entry.pm",
+ "version" : "2.08"
+ },
+ "Cache::Memory::HeapElem" : {
+ "file" : "lib/Cache/Memory/HeapElem.pm"
+ },
+ "Cache::Null" : {
+ "file" : "lib/Cache/Null.pm",
+ "version" : "2.08"
+ },
+ "Cache::Null::Entry" : {
+ "file" : "lib/Cache/Null/Entry.pm",
+ "version" : "2.08"
+ },
+ "Cache::RemovalStrategy" : {
+ "file" : "lib/Cache/RemovalStrategy.pm",
+ "version" : "2.08"
+ },
+ "Cache::RemovalStrategy::FIFO" : {
+ "file" : "lib/Cache/RemovalStrategy/FIFO.pm"
+ },
+ "Cache::RemovalStrategy::LRU" : {
+ "file" : "lib/Cache/RemovalStrategy/LRU.pm"
+ },
+ "Cache::Tester" : {
+ "file" : "lib/Cache/Tester.pm",
+ "version" : "2.08"
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "license" : [
+ "http://dev.perl.org/licenses/"
+ ],
+ "repository" : {
+ "url" : "http://bitbucket.org/shlomif/web-cpan"
+ }
+ },
+ "version" : "2.08"
+}
diff --git a/META.yml b/META.yml
index 7395986..920f147 100644
--- a/META.yml
+++ b/META.yml
@@ -1,25 +1,90 @@
-# http://module-build.sourceforge.net/META-spec.html
-#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
-name: Cache
-version: 2.04
-version_from: lib/Cache.pm
-installdirs: site
+---
+abstract: 'Provide a generic Cache mechanism.'
+author:
+ - 'Chris Leishman <chris at leishman.org>'
+build_requires: {}
+configure_requires:
+ Module::Build: 0
+dynamic_config: 1
+generated_by: 'Module::Build version 0.4007, CPAN::Meta::Converter version 2.132830'
+keywords:
+ - cache
+ - caching
+ - file
+ - generic
+ - memory
+ - optimisation
+ - optimise
+ - optimization
+ - optimize
+ - speed
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Cache
+provides:
+ Cache:
+ file: lib/Cache.pm
+ version: 2.08
+ Cache::Entry:
+ file: lib/Cache/Entry.pm
+ version: 2.08
+ Cache::File:
+ file: lib/Cache/File.pm
+ version: 2.08
+ Cache::File::Entry:
+ file: lib/Cache/File/Entry.pm
+ version: 2.08
+ Cache::File::Handle:
+ file: lib/Cache/File/Handle.pm
+ Cache::File::Heap:
+ file: lib/Cache/File/Heap.pm
+ version: 2.08
+ Cache::IOString:
+ file: lib/Cache/IOString.pm
+ Cache::Memory:
+ file: lib/Cache/Memory.pm
+ version: 2.08
+ Cache::Memory::Entry:
+ file: lib/Cache/Memory/Entry.pm
+ version: 2.08
+ Cache::Memory::HeapElem:
+ file: lib/Cache/Memory/HeapElem.pm
+ Cache::Null:
+ file: lib/Cache/Null.pm
+ version: 2.08
+ Cache::Null::Entry:
+ file: lib/Cache/Null/Entry.pm
+ version: 2.08
+ Cache::RemovalStrategy:
+ file: lib/Cache/RemovalStrategy.pm
+ version: 2.08
+ Cache::RemovalStrategy::FIFO:
+ file: lib/Cache/RemovalStrategy/FIFO.pm
+ Cache::RemovalStrategy::LRU:
+ file: lib/Cache/RemovalStrategy/LRU.pm
+ Cache::Tester:
+ file: lib/Cache/Tester.pm
+ version: 2.08
requires:
- Date::Parse: 2.24
- DB_File: 1.72
- Digest::SHA1: 2.01
- Fcntl: 1.03
- File::Find: 0
- File::NFSLock: 1.2
- File::Path: 1
- File::Spec: 0.8
- Heap::Fibonacci: 0.01
- IO::File: 1.08
- IO::Handle: 1.21
- IO::String: 1.02
- Storable: 1
- Symbol: 1.02
- Test::More: 0.45
-
-distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.17
+ DB_File: 1.72
+ Date::Parse: 2.24
+ Digest::SHA1: 2.01
+ Fcntl: 1.03
+ File::Find: 0
+ File::NFSLock: 1.20
+ File::Path: 1.00
+ File::Spec: 0.8
+ Heap::Fibonacci: 0.01
+ IO::File: 1.08
+ IO::Handle: 1.21
+ IO::String: 1.02
+ Storable: 1.00
+ Symbol: 1.02
+ Test::More: 0.45
+ perl: 5.006
+resources:
+ license: http://dev.perl.org/licenses/
+ repository: http://bitbucket.org/shlomif/web-cpan
+version: 2.08
diff --git a/Makefile.PL b/Makefile.PL
deleted file mode 100644
index 519ac8d..0000000
--- a/Makefile.PL
+++ /dev/null
@@ -1,25 +0,0 @@
-use ExtUtils::MakeMaker;
-# See lib/ExtUtils/MakeMaker.pm for details of how to influence
-# the contents of the Makefile that is written.
-WriteMakefile(
- 'NAME' => 'Cache',
- 'VERSION_FROM' => 'lib/Cache.pm', # finds $VERSION
- 'AUTHOR' => 'Chris Leishman <chris at leishman.org>',
- 'PREREQ_PM' => {
- Storable => 1.00,
- Date::Parse => 2.24,
- Test::More => 0.45,
- Heap::Fibonacci => 0.01,
- IO::String => 1.02,
- File::Find => 0, # any version
- File::Spec => 0.8,
- File::Path => 1.00,
- File::NFSLock => 1.20,
- Digest::SHA1 => 2.01,
- Symbol => 1.02,
- IO::Handle => 1.21,
- IO::File => 1.08,
- Fcntl => 1.03,
- DB_File => 1.72,
- },
-);
diff --git a/README b/README
index 8b19f2f..cca438e 100644
--- a/README
+++ b/README
@@ -23,7 +23,12 @@ To install:
will probably do it.
-Please send any bug reports to Chris Leishman <chris at leishman.org>.
-Messages of thanks are also appreciated :)
+Please send any bug reports to the rt.cpan.org queue at
+https://rt.cpan.org/Dist/Display.html?Name=Cache .
+
+This module was originally created by Chris Leishman <chris at leishman.org>
+and is now maintained by Shlomi Fish ( http://www.shlomifish.org/ ).
+
+Messages of thanks can be sent by E-mail. :)
Enjoy!
diff --git a/inc/Devel/AssertOS.pm b/inc/Devel/AssertOS.pm
new file mode 100644
index 0000000..5b851a0
--- /dev/null
+++ b/inc/Devel/AssertOS.pm
@@ -0,0 +1,104 @@
+package #
+Devel::AssertOS;
+
+use Devel::CheckOS;
+
+use strict;
+
+use vars qw($VERSION);
+
+$VERSION = '1.21';
+
+# localising prevents the warningness leaking out of this module
+local $^W = 1; # use warnings is a 5.6-ism
+
+=head1 NAME
+
+Devel::AssertOS - require that we are running on a particular OS
+
+=head1 DESCRIPTION
+
+Devel::AssertOS is a utility module for Devel::CheckOS and
+Devel::AssertOS::*. It is nothing but a magic C<import()> that lets you
+do this:
+
+ use Devel::AssertOS qw(Linux FreeBSD Cygwin);
+
+which will die unless the platform the code is running on is Linux, FreeBSD
+or Cygwin.
+
+To assert that the OS is B<not> a specific platform, prepend the platform name
+with a minus sign. For example, to run on anything but Amiga, do:
+
+ use Devel::AssertOS qw(-Amiga);
+
+
+=cut
+
+sub import {
+ shift;
+ die("Devel::AssertOS needs at least one parameter\n") unless(@_);
+
+ my @oses = @_;
+
+ my ( @must, @must_not );
+
+ for my $os ( @oses ) {
+ if ( $os =~ s/^-// ) {
+ push @must_not, $os;
+ }
+ else {
+ push @must, $os;
+ }
+ }
+
+ Devel::CheckOS::die_if_os_is(@must_not) if @must_not;
+ Devel::CheckOS::die_if_os_isnt(@must) if @must;
+}
+
+=head1 BUGS and FEEDBACK
+
+I welcome feedback about my code, including constructive criticism.
+Bug reports should be made using L<http://rt.cpan.org/> or by email.
+
+You will need to include in your bug report the exact value of $^O, what
+the OS is called (eg Windows Vista 64 bit Ultimate Home Edition), and,
+if relevant, what "OS family" it should be in and who wrote it.
+
+If you are feeling particularly generous you can encourage me in my
+open source endeavours by buying me something from my wishlist:
+ L<http://www.cantrell.org.uk/david/wishlist/>
+
+=head1 SEE ALSO
+
+$^O in L<perlvar>
+
+L<perlport>
+
+L<Devel::CheckOS>
+
+L<Devel::AssertOS::Extending>
+
+The use-devel-assertos script
+
+L<Module::Install::AssertOS>
+
+=head1 AUTHOR
+
+David Cantrell E<lt>F<david at cantrell.org.uk>E<gt>
+
+Thanks to David Golden for suggesting that I add this utility module.
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=head1 CONSPIRACY
+
+This module is also free-as-in-mason software.
+
+=cut
+
+$^O;
diff --git a/inc/Devel/AssertOS/AIX.pm b/inc/Devel/AssertOS/AIX.pm
new file mode 100644
index 0000000..09e7f0d
--- /dev/null
+++ b/inc/Devel/AssertOS/AIX.pm
@@ -0,0 +1,22 @@
+# $Id: AIX.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::AIX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'aix' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/BSDOS.pm b/inc/Devel/AssertOS/BSDOS.pm
new file mode 100644
index 0000000..5c0e335
--- /dev/null
+++ b/inc/Devel/AssertOS/BSDOS.pm
@@ -0,0 +1,22 @@
+# $Id: BSDOS.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::BSDOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'bsdos' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/DGUX.pm b/inc/Devel/AssertOS/DGUX.pm
new file mode 100644
index 0000000..a64a6a1
--- /dev/null
+++ b/inc/Devel/AssertOS/DGUX.pm
@@ -0,0 +1,22 @@
+# $Id: DGUX.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::DGUX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'dgux' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/DragonflyBSD.pm b/inc/Devel/AssertOS/DragonflyBSD.pm
new file mode 100644
index 0000000..5221f69
--- /dev/null
+++ b/inc/Devel/AssertOS/DragonflyBSD.pm
@@ -0,0 +1,22 @@
+# $Id: DragonflyBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::DragonflyBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'dragonfly' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Dynix.pm b/inc/Devel/AssertOS/Dynix.pm
new file mode 100644
index 0000000..054c695
--- /dev/null
+++ b/inc/Devel/AssertOS/Dynix.pm
@@ -0,0 +1,22 @@
+# $Id: Dynix.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Dynix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'dynixptx' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/FreeBSD.pm b/inc/Devel/AssertOS/FreeBSD.pm
new file mode 100644
index 0000000..f436b92
--- /dev/null
+++ b/inc/Devel/AssertOS/FreeBSD.pm
@@ -0,0 +1,22 @@
+# $Id: FreeBSD.pm,v 1.5 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::FreeBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^(gnuk)?freebsd$/ ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/HPUX.pm b/inc/Devel/AssertOS/HPUX.pm
new file mode 100644
index 0000000..0a3e0a0
--- /dev/null
+++ b/inc/Devel/AssertOS/HPUX.pm
@@ -0,0 +1,22 @@
+# $Id: HPUX.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::HPUX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'hpux' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Interix.pm b/inc/Devel/AssertOS/Interix.pm
new file mode 100644
index 0000000..40901c8
--- /dev/null
+++ b/inc/Devel/AssertOS/Interix.pm
@@ -0,0 +1,22 @@
+# $Id: Interix.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Interix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'interix' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Irix.pm b/inc/Devel/AssertOS/Irix.pm
new file mode 100644
index 0000000..d301e59
--- /dev/null
+++ b/inc/Devel/AssertOS/Irix.pm
@@ -0,0 +1,22 @@
+# $Id: Irix.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Irix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'irix' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Linux.pm b/inc/Devel/AssertOS/Linux.pm
new file mode 100644
index 0000000..8f507d7
--- /dev/null
+++ b/inc/Devel/AssertOS/Linux.pm
@@ -0,0 +1,22 @@
+# $Id: Linux.pm,v 1.5 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Linux;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'linux' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/MacOSX.pm b/inc/Devel/AssertOS/MacOSX.pm
new file mode 100644
index 0000000..69767a3
--- /dev/null
+++ b/inc/Devel/AssertOS/MacOSX.pm
@@ -0,0 +1,22 @@
+# $Id: MacOSX.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::MacOSX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'darwin' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/MachTen.pm b/inc/Devel/AssertOS/MachTen.pm
new file mode 100644
index 0000000..fe50d31
--- /dev/null
+++ b/inc/Devel/AssertOS/MachTen.pm
@@ -0,0 +1,29 @@
+# $Id: MachTen.pm,v 1.4 2008/11/05 22:52:34 drhyde Exp $
+
+package #
+Devel::AssertOS::MachTen;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'machten' ? 1 : 0; }
+
+sub expn {
+join("\n",
+"You're using the Mach Ten BSD-compatible environment on top of",
+"Mac OS 'Classic' - ie, a pre-OS-X version of Mac OS.",
+)
+}
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/MidnightBSD.pm b/inc/Devel/AssertOS/MidnightBSD.pm
new file mode 100644
index 0000000..19f93e0
--- /dev/null
+++ b/inc/Devel/AssertOS/MidnightBSD.pm
@@ -0,0 +1,20 @@
+package #
+Devel::AssertOS::MidnightBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.0';
+
+sub os_is { $^O eq 'midnightbsd' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/MirOSBSD.pm b/inc/Devel/AssertOS/MirOSBSD.pm
new file mode 100644
index 0000000..2055d32
--- /dev/null
+++ b/inc/Devel/AssertOS/MirOSBSD.pm
@@ -0,0 +1,22 @@
+# $Id: MirOSBSD.pm,v 1.2 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::MirOSBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'mirbsd' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/NetBSD.pm b/inc/Devel/AssertOS/NetBSD.pm
new file mode 100644
index 0000000..eeb10c8
--- /dev/null
+++ b/inc/Devel/AssertOS/NetBSD.pm
@@ -0,0 +1,22 @@
+# $Id: NetBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::NetBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'netbsd' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/OSF.pm b/inc/Devel/AssertOS/OSF.pm
new file mode 100644
index 0000000..f8aa978
--- /dev/null
+++ b/inc/Devel/AssertOS/OSF.pm
@@ -0,0 +1,24 @@
+# $Id: OSF.pm,v 1.4 2008/11/05 22:52:34 drhyde Exp $
+
+package #
+Devel::AssertOS::OSF;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'dec_osf' ? 1 : 0; }
+
+sub expn { "OSF is also known as OSF/1, Digital Unix, and Tru64 Unix" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/OpenBSD.pm b/inc/Devel/AssertOS/OpenBSD.pm
new file mode 100644
index 0000000..9bd60de
--- /dev/null
+++ b/inc/Devel/AssertOS/OpenBSD.pm
@@ -0,0 +1,22 @@
+# $Id: OpenBSD.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::OpenBSD;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'openbsd' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/QNX.pm b/inc/Devel/AssertOS/QNX.pm
new file mode 100644
index 0000000..e0fc252
--- /dev/null
+++ b/inc/Devel/AssertOS/QNX.pm
@@ -0,0 +1,28 @@
+# $Id: QNX.pm,v 1.2 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::QNX;
+
+use Devel::CheckOS;
+
+$VERSION = '1.2';
+
+sub matches { return qw(QNX::v4 QNX::Neutrino); }
+sub os_is { Devel::CheckOS::os_is(matches()); }
+sub expn {
+join("\n",
+"All versions of QNX match this, as well as (possibly) a more specific",
+"match"
+)
+}
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/QNX/Neutrino.pm b/inc/Devel/AssertOS/QNX/Neutrino.pm
new file mode 100644
index 0000000..848c880
--- /dev/null
+++ b/inc/Devel/AssertOS/QNX/Neutrino.pm
@@ -0,0 +1,24 @@
+# $Id: Neutrino.pm,v 1.3 2008/11/05 22:52:35 drhyde Exp $
+
+package #
+Devel::AssertOS::QNX::Neutrino;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'nto' ? 1 : 0; }
+
+sub expn { "The operating system is version 6 of QNX, also known as Neutrino" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/QNX/v4.pm b/inc/Devel/AssertOS/QNX/v4.pm
new file mode 100644
index 0000000..ca72014
--- /dev/null
+++ b/inc/Devel/AssertOS/QNX/v4.pm
@@ -0,0 +1,24 @@
+# $Id: v4.pm,v 1.3 2008/11/05 22:52:35 drhyde Exp $
+
+package #
+Devel::AssertOS::QNX::v4;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'qnx' ? 1 : 0; }
+
+sub expn { "The operating system is version 4 of QNX" }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/SCO.pm b/inc/Devel/AssertOS/SCO.pm
new file mode 100644
index 0000000..80c2bfe
--- /dev/null
+++ b/inc/Devel/AssertOS/SCO.pm
@@ -0,0 +1,22 @@
+# $Id: SCO.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::SCO;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'sco_sv' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Solaris.pm b/inc/Devel/AssertOS/Solaris.pm
new file mode 100644
index 0000000..a6291d6
--- /dev/null
+++ b/inc/Devel/AssertOS/Solaris.pm
@@ -0,0 +1,22 @@
+# $Id: Solaris.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Solaris;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'solaris' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/SunOS.pm b/inc/Devel/AssertOS/SunOS.pm
new file mode 100644
index 0000000..2466aad
--- /dev/null
+++ b/inc/Devel/AssertOS/SunOS.pm
@@ -0,0 +1,22 @@
+# $Id: SunOS.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::SunOS;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'sunos' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/SysVr4.pm b/inc/Devel/AssertOS/SysVr4.pm
new file mode 100644
index 0000000..352891e
--- /dev/null
+++ b/inc/Devel/AssertOS/SysVr4.pm
@@ -0,0 +1,22 @@
+# $Id: SysVr4.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::SysVr4;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'svr4' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/SysVr5.pm b/inc/Devel/AssertOS/SysVr5.pm
new file mode 100644
index 0000000..dea4d46
--- /dev/null
+++ b/inc/Devel/AssertOS/SysVr5.pm
@@ -0,0 +1,22 @@
+# $Id: SysVr5.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::SysVr5;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O eq 'svr5' ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Unicos.pm b/inc/Devel/AssertOS/Unicos.pm
new file mode 100644
index 0000000..4afd071
--- /dev/null
+++ b/inc/Devel/AssertOS/Unicos.pm
@@ -0,0 +1,22 @@
+# $Id: Unicos.pm,v 1.3 2008/10/27 20:31:21 drhyde Exp $
+
+package #
+Devel::AssertOS::Unicos;
+
+use Devel::CheckOS;
+
+$VERSION = '1.1';
+
+sub os_is { $^O =~ /^unicos(mk)?$/ ? 1 : 0; }
+
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/AssertOS/Unix.pm b/inc/Devel/AssertOS/Unix.pm
new file mode 100644
index 0000000..09ae4b5
--- /dev/null
+++ b/inc/Devel/AssertOS/Unix.pm
@@ -0,0 +1,40 @@
+# $Id: Unix.pm,v 1.9 2008/11/05 22:52:35 drhyde Exp $
+
+package #
+Devel::AssertOS::Unix;
+
+use Devel::CheckOS;
+
+$VERSION = '1.4';
+
+# list of OSes lifted from Module::Build 0.2808
+#
+sub matches {
+ return qw(
+ AIX BSDOS DGUX DragonflyBSD Dynix FreeBSD HPUX Interix Irix
+ Linux MachTen MacOSX MirOSBSD NetBSD OpenBSD OSF QNX SCO Solaris
+ SunOS SysVr4 SysVr5 Unicos MidnightBSD
+ );
+}
+sub os_is { Devel::CheckOS::os_is(matches()); }
+Devel::CheckOS::die_unsupported() unless(os_is());
+
+sub expn {
+join("\n",
+"The OS supports multiple concurrent users, devices are represented as",
+"pseudo-files in /dev, there is a single root to the filesystem, users",
+"are protected from interference from other users, and the API is POSIXy.",
+"It should be reasonably easy to port a simple text-mode C program",
+"between Unixes."
+)
+}
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007 - 2008 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=cut
+
+1;
diff --git a/inc/Devel/CheckOS.pm b/inc/Devel/CheckOS.pm
new file mode 100644
index 0000000..a0d1a3a
--- /dev/null
+++ b/inc/Devel/CheckOS.pm
@@ -0,0 +1,335 @@
+package #
+Devel::CheckOS;
+
+use strict;
+use Exporter;
+
+use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
+
+$VERSION = '1.71';
+
+# localising prevents the warningness leaking out of this module
+local $^W = 1; # use warnings is a 5.6-ism
+
+ at ISA = qw(Exporter);
+ at EXPORT_OK = qw(os_is os_isnt die_if_os_is die_if_os_isnt die_unsupported list_platforms list_family_members);
+%EXPORT_TAGS = (
+ all => \@EXPORT_OK,
+ booleans => [qw(os_is os_isnt die_unsupported)],
+ fatal => [qw(die_if_os_is die_if_os_isnt)]
+);
+
+=head1 NAME
+
+Devel::CheckOS - check what OS we're running on
+
+=head1 DESCRIPTION
+
+A learned sage once wrote on IRC:
+
+ $^O is stupid and ugly, it wears its pants as a hat
+
+Devel::CheckOS provides a more friendly interface to $^O, and also lets
+you check for various OS "families" such as "Unix", which includes things
+like Linux, Solaris, AIX etc.
+
+It spares perl the embarrassment of wearing its pants on its head by
+covering them with a splendid Fedora.
+
+=head1 SYNOPSIS
+
+ use Devel::CheckOS qw(os_is);
+ print "Hey, I know this, it's a Unix system\n" if(os_is('Unix'));
+
+ print "You've got Linux 2.6\n" if(os_is('Linux::v2_6'));
+
+=head1 USING IT IN Makefile.PL or Build.PL
+
+If you want to use this from Makefile.PL or Build.PL, do
+not simply copy the module into your distribution as this may cause
+problems when PAUSE and search.cpan.org index the distro. Instead, use
+the use-devel-assertos script.
+
+=head1 FUNCTIONS
+
+Devel::CheckOS implements the following functions, which load subsidiary
+OS-specific modules on demand to do the real work. They can be exported
+by listing their names after C<use Devel::CheckOS>. You can also export
+groups of functions thus:
+
+ use Devel::CheckOS qw(:booleans); # export the boolean functions
+ # and 'die_unsupported'
+
+ use Devel::CheckOS qw(:fatal); # export those that die on no match
+
+ use Devel::CheckOS qw(:all); # export everything
+
+=head2 Boolean functions
+
+=head3 os_is
+
+Takes a list of OS names. If the current platform matches any of them,
+it returns true, otherwise it returns false. The names can be a mixture
+of OSes and OS families, eg ...
+
+ os_is(qw(Unix VMS)); # Unix is a family, VMS is an OS
+
+=cut
+
+sub os_is {
+ my @targets = @_;
+ my $rval = 0;
+ foreach my $target (@targets) {
+ die("Devel::CheckOS: $target isn't a legal OS name\n")
+ unless($target =~ /^\w+(::\w+)*$/);
+ eval "use Devel::AssertOS::$target";
+ if(!$@) {
+ no strict 'refs';
+ $rval = 1 if(&{"Devel::AssertOS::${target}::os_is"}());
+ }
+ }
+ return $rval;
+}
+
+=head3 os_isnt
+
+If the current platform matches any of the parameters it returns false,
+otherwise it returns true.
+
+=cut
+
+sub os_isnt {
+ my @targets = @_;
+ my $rval = 1;
+ foreach my $target (@targets) {
+ $rval = 0 if(os_is($target));
+ }
+ return $rval;
+}
+
+=head2 Fatal functions
+
+=head3 die_if_os_isnt
+
+As C<os_is()>, except that it dies instead of returning false. The die()
+message matches what the CPAN-testers look for to determine if a module
+doesn't support a particular platform.
+
+=cut
+
+sub die_if_os_isnt {
+ os_is(@_) ? 1 : die_unsupported();
+}
+
+=head3 die_if_os_is
+
+As C<os_isnt()>, except that it dies instead of returning false.
+
+=cut
+
+sub die_if_os_is {
+ os_isnt(@_) ? 1 : die_unsupported();
+}
+
+=head2 And some utility functions ...
+
+=head3 die_unsupported
+
+This function simply dies with the message "OS unsupported", which is what
+the CPAN testers look for to figure out whether a platform is supported or
+not.
+
+=cut
+
+sub die_unsupported { die("OS unsupported\n"); }
+
+=head3 list_platforms
+
+When called in list context,
+return a list of all the platforms for which the corresponding
+Devel::AssertOS::* module is available. This includes both OSes and OS
+families, and both those bundled with this module and any third-party
+add-ons you have installed.
+
+In scalar context, returns a hashref keyed by platform with the filename
+of the most recent version of the supporting module that is available to you.
+This is to make sure that the use-devel-assertos script Does The Right Thing
+in the case where you have installed the module in one version of perl, then
+upgraded perl, and installed it again in the new version. Sometimes the old
+version of perl and all its modules will still be hanging around and perl
+"helpfully" includes the old perl's search path in its own.
+
+Unfortunately, on some platforms this list may have file case
+broken. eg, some platforms might return 'freebsd' instead of 'FreeBSD'.
+This is because they have case-insensitive filesystems so things
+should Just Work anyway.
+
+=cut
+
+my ($re_Devel, $re_AssertOS);
+
+sub list_platforms {
+ eval " # only load these if needed
+ use File::Find::Rule;
+ use File::Spec;
+ ";
+
+ die($@) if($@);
+ if (!$re_Devel) {
+ my $case_flag = File::Spec->case_tolerant ? '(?i)' : '';
+ $re_Devel = qr/$case_flag ^Devel$/x;
+ $re_AssertOS = qr/$case_flag ^AssertOS$/x;
+ }
+
+ # sort by mtime, so oldest last
+ my @modules = sort {
+ (stat($a->{file}))[9] <=> (stat($b->{file}))[9]
+ } map {
+ my (undef, $dir_part, $file_part) = File::Spec->splitpath($_);
+ $file_part =~ s/\.pm$//;
+ my (@dirs) = grep {+length} File::Spec->splitdir($dir_part);
+ foreach my $i (reverse 1..$#dirs) {
+ next unless $dirs[$i] =~ $re_AssertOS
+ && $dirs[$i - 1] =~ $re_Devel;
+ splice @dirs, 0, $i + 1;
+ last;
+ }
+ {
+ module => join('::', @dirs, $file_part),
+ file => File::Spec->canonpath($_)
+ }
+ } File::Find::Rule->file()->name('*.pm')->in(
+ grep { -d }
+ map { File::Spec->catdir($_, qw(Devel AssertOS)) }
+ @INC
+ );
+
+ my %modules = map {
+ $_->{module} => $_->{file}
+ } @modules;
+
+ if(wantarray()) {
+ return sort keys %modules;
+ } else {
+ return \%modules;
+ }
+}
+
+=head3 list_family_members
+
+Takes the name of an OS 'family' and returns a list of all its members.
+In list context, you get a list, in scalar context you get an arrayref.
+
+If called on something that isn't a family, you get an empty list (or
+a ref to an empty array).
+
+=cut
+
+sub list_family_members {
+ my $family = shift() ||
+ die(__PACKAGE__."::list_family_members needs a parameter\n");
+
+ # this will die if it's the wrong OS, but the module is loaded ...
+ eval qq{use Devel::AssertOS::$family};
+ # ... so we can now query it
+ my @members = eval qq{
+ no strict 'refs';
+ &{"Devel::AssertOS::${family}::matches"}()
+ };
+ return wantarray() ? @members : \@members;
+}
+
+=head1 PLATFORMS SUPPORTED
+
+To see the list of platforms for which information is available, run this:
+
+ perl -MDevel::CheckOS -e 'print join(", ", Devel::CheckOS::list_platforms())'
+
+Note that capitalisation is important. These are the names of the
+underlying Devel::AssertOS::* modules
+which do the actual platform detection, so they have to
+be 'legal' filenames and module names, which unfortunately precludes
+funny characters, so platforms like OS/2 are mis-spelt deliberately.
+Sorry.
+
+Also be aware that not all of them have been properly tested. I don't
+have access to most of them and have had to work from information
+gleaned from L<perlport> and a few other places. For a complete list of
+OS families, see L<Devel::CheckOS::Families>.
+
+If you want to add your own OSes or families, see L<Devel::AssertOS::Extending>
+and please feel free to upload the results to the CPAN.
+
+=head1 BUGS and FEEDBACK
+
+I welcome feedback about my code, including constructive criticism.
+Bug reports should be made using L<http://rt.cpan.org/> or by email.
+
+You will need to include in your bug report the exact value of $^O, what
+the OS is called (eg Windows Vista 64 bit Ultimate Home Edition), and,
+if relevant, what "OS family" it should be in and who wrote it.
+
+If you are feeling particularly generous you can encourage me in my
+open source endeavours by buying me something from my wishlist:
+ L<http://www.cantrell.org.uk/david/wishlist/>
+
+=head1 SEE ALSO
+
+$^O in L<perlvar>
+
+L<perlport>
+
+L<Devel::AssertOS>
+
+L<Devel::AssertOS::Extending>
+
+L<Probe::Perl>
+
+The use-devel-assertos script
+
+L<Module::Install::AssertOS>
+
+=head1 AUTHOR
+
+David Cantrell E<lt>F<david at cantrell.org.uk>E<gt>
+
+Thanks to David Golden for the name and ideas about the interface, and
+to the cpan-testers-discuss mailing list for prompting me to write it
+in the first place.
+
+Thanks to Ken Williams, from whose L<Module::Build> I lifted some of the
+information about what should be in the Unix family.
+
+Thanks to Billy Abbott for finding some bugs for me on VMS.
+
+Thanks to Matt Kraai for information about QNX.
+
+Thanks to Kenichi Ishigaki and Gabor Szabo for reporting a bug on Windows,
+and to the former for providing a patch.
+
+Thanks to Paul Green for some information about VOS.
+
+Thanks to Yanick Champoux for a patch to let Devel::AssertOS support
+negative assertions.
+
+=head1 SOURCE CODE REPOSITORY
+
+L<git://github.com/DrHyde/perl-modules-Devel-CheckOS.git>
+
+=head1 COPYRIGHT and LICENCE
+
+Copyright 2007-2012 David Cantrell
+
+This software is free-as-in-speech software, and may be used, distributed, and modified under the terms of either the GNU General Public Licence version 2 or the Artistic Licence. It's up to you which one you use. The full text of the licences can be found in the files GPL2.txt and ARTISTIC.txt, respectively.
+
+=head1 HATS
+
+I recommend buying a Fedora from L<http://hatsdirect.com/>.
+
+=head1 CONSPIRACY
+
+This module is also free-as-in-mason software.
+
+=cut
+
+1;
diff --git a/inc/Test/Run/Builder.pm b/inc/Test/Run/Builder.pm
new file mode 100644
index 0000000..773b47b
--- /dev/null
+++ b/inc/Test/Run/Builder.pm
@@ -0,0 +1,76 @@
+package Test::Run::Builder;
+
+use strict;
+use warnings;
+
+use Module::Build;
+
+use vars qw(@ISA);
+
+ at ISA = (qw(Module::Build));
+
+sub ACTION_runtest
+{
+ my ($self) = @_;
+ my $p = $self->{properties};
+
+ $self->depends_on('code');
+
+ local @INC = @INC;
+
+ # Make sure we test the module in blib/
+ unshift @INC, (File::Spec->catdir($p->{base_dir}, $self->blib, 'lib'),
+ File::Spec->catdir($p->{base_dir}, $self->blib, 'arch'));
+
+ $self->do_test_run_tests;
+}
+
+sub ACTION_distruntest {
+ my ($self) = @_;
+
+ $self->depends_on('distdir');
+
+ my $start_dir = $self->cwd;
+ my $dist_dir = $self->dist_dir;
+ chdir $dist_dir or die "Cannot chdir to $dist_dir: $!";
+ # XXX could be different names for scripts
+
+ $self->run_perl_script('Build.PL') # XXX Should this be run w/ --nouse-rcfile
+ or die "Error executing 'Build.PL' in dist directory: $!";
+ $self->run_perl_script('Build')
+ or die "Error executing 'Build' in dist directory: $!";
+ $self->run_perl_script('Build', [], ['runtest'])
+ or die "Error executing 'Build test' in dist directory";
+ chdir $start_dir;
+}
+
+sub do_test_run_tests
+{
+ my $self = shift;
+
+ require Test::Run::CmdLine::Iface;
+
+ my $test_run =
+ Test::Run::CmdLine::Iface->new(
+ {
+ 'test_files' => [glob("t/*.t")],
+ }
+ # 'backend_params' => $self->_get_backend_params(),
+ );
+
+ return $test_run->run();
+}
+
+sub ACTION_tags
+{
+ return
+ system(qw(
+ ctags -f tags --recurse --totals
+ --exclude=blib/** --exclude=t/lib/**
+ --exclude=.svn --exclude='*~'
+ --languages=Perl --langmap=Perl:+.t
+ ));
+}
+
+1;
+
diff --git a/lib/Cache.pm b/lib/Cache.pm
index 6c0c4bb..465d4d0 100644
--- a/lib/Cache.pm
+++ b/lib/Cache.pm
@@ -45,7 +45,7 @@ package Cache;
require 5.006;
use strict;
-use warnings::register;
+use warnings;
use Carp;
use Date::Parse;
@@ -54,7 +54,7 @@ use fields qw(
default_expires removal_strategy size_limit
load_callback validate_callback);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
our $EXPIRES_NOW = 'now';
our $EXPIRES_NEVER = 'never';
@@ -479,11 +479,19 @@ These methods are only for use internally (by concrete Cache implementations).
Converts a timespec as described for Cache::Entry::set_expiry() into a unix
time.
+=back
+
=cut
sub Canonicalize_Expiration_Time {
- my $timespec = lc($_[0])
- or return undef;
+ my $timespec;
+
+ my $timespec_param = shift(@_);
+ if (! $timespec_param)
+ {
+ return undef;
+ }
+ $timespec = lc($timespec_param);
my $time;
diff --git a/lib/Cache/Entry.pm b/lib/Cache/Entry.pm
index ee4de22..63ef1d3 100644
--- a/lib/Cache/Entry.pm
+++ b/lib/Cache/Entry.pm
@@ -39,7 +39,7 @@ use Carp;
use fields qw(cache key);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
sub new {
@@ -230,7 +230,7 @@ that writers will have have an exclusive lock and readers a shared one. Thus
the method get() (or obtaining another handle) should be avoided whilst a
write handle is held. Using set() or remove(), however, should be supported.
These clear the current entry and whilst they do not invalidate open handles,
-those handle will from then on refer to old data and any changes to the data
+those handle will from then on refer to old data and any changes to the data
will be discarded.
=cut
diff --git a/lib/Cache/File.pm b/lib/Cache/File.pm
index 11d7978..6e0fab3 100644
--- a/lib/Cache/File.pm
+++ b/lib/Cache/File.pm
@@ -41,7 +41,7 @@ use fields qw(
expheap ageheap useheap index lockfile
lock lockcount openexp openage openuse openidx);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
sub LOCK_NONE () { 0 }
sub LOCK_LOCAL () { 1 }
@@ -196,7 +196,7 @@ sub count {
my $index = $self->get_index();
$count = $$index{$COUNT_KEY};
$self->unlock();
-
+
return $count || 0;
}
@@ -208,13 +208,13 @@ sub size {
my $index = $self->get_index();
$size = $$index{$SIZE_KEY};
$self->unlock();
-
+
return $size || 0;
}
sub sync {
my Cache::File $self = shift;
- # TODO: check entries in cache root and rebuild heaps
+ # TODO: check entries in cache root and rebuild heaps
}
@@ -310,8 +310,6 @@ sub _set_cache_umask {
Specify the level of locking to be used. There are three different levels
available:
-=over
-
=item Cache::File::LOCK_NONE()
No locking is performed. Useful when you can guarantee only one process will
diff --git a/lib/Cache/File/Entry.pm b/lib/Cache/File/Entry.pm
index 9d2ed1e..0bfc76b 100644
--- a/lib/Cache/File/Entry.pm
+++ b/lib/Cache/File/Entry.pm
@@ -30,7 +30,7 @@ use Carp;
use base qw(Cache::Entry);
use fields qw(dir path lockdetails);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
# hash of locks held my the process, keyed on path. This is useful for
# catching potential deadlocks and warning the user, and for implementing
@@ -131,7 +131,7 @@ sub _get {
my $time = time();
$cache->lock();
-
+
if ($exists = $self->exists()) {
# update last used
$cache->update_last_use($key, $time);
@@ -417,7 +417,7 @@ sub _lock {
my $path = $self->{path};
my $lock_details = $PROCESS_LOCKS{$path};
-
+
if ($lock_details) {
if ($$lock_details{type} != $type) {
$tryonly and return 0;
@@ -441,7 +441,7 @@ sub _lock {
lock_type => $type | ($tryonly? LOCK_NB : 0),
stale_lock_timeout => $Cache::File::STALE_LOCK_TIMEOUT,
});
-
+
unless ($lock) {
umask $oldmask;
$tryonly and return 0;
diff --git a/lib/Cache/File/Heap.pm b/lib/Cache/File/Heap.pm
index 1a5d9d5..64104b8 100644
--- a/lib/Cache/File/Heap.pm
+++ b/lib/Cache/File/Heap.pm
@@ -31,7 +31,7 @@ use Carp;
use fields qw(db dbhash);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
# common info object
my $BTREEINFO = new DB_File::BTREEINFO;
diff --git a/lib/Cache/IOString.pm b/lib/Cache/IOString.pm
index ceeda7b..3d73238 100644
--- a/lib/Cache/IOString.pm
+++ b/lib/Cache/IOString.pm
@@ -4,7 +4,7 @@ Cache::IOString - wrapper for IO::String to use in Cache implementations
=head1 DESCRIPTION
-This module implements a derived class of IO::String that handles access
+This module implements a derived class of IO::String that handles access
modes and allows callback on close. It is for use by Cache implementations
and should not be used directly.
diff --git a/lib/Cache/Memory.pm b/lib/Cache/Memory.pm
index 192c2ab..6cc5a9a 100644
--- a/lib/Cache/Memory.pm
+++ b/lib/Cache/Memory.pm
@@ -34,7 +34,7 @@ use Cache::Memory::Entry;
use base qw(Cache);
use fields qw(namespace);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
# storage for all data
@@ -79,6 +79,15 @@ available properties that can be set.
=cut
+sub _init_ns_heaps {
+ my ($self, $ns) = @_;
+
+ $Age_Heaps{$ns} ||= Heap::Fibonacci->new();
+ $Use_Heaps{$ns} ||= Heap::Fibonacci->new();
+
+ return;
+}
+
sub new {
my Cache::Memory $self = shift;
my $args = $#_? { @_ } : shift;
@@ -89,10 +98,8 @@ sub new {
my $ns = $args->{namespace} || $DEFAULT_NAMESPACE;
$self->{namespace} = $ns;
- # init heaps
- $Age_Heaps{$ns} ||= Heap::Fibonacci->new();
- $Use_Heaps{$ns} ||= Heap::Fibonacci->new();
-
+ $self->_init_ns_heaps($ns);
+
return $self;
}
@@ -169,8 +176,9 @@ sub clear {
$Store_Sizes{$ns} = 0;
# recreate age and used heaps (thus emptying them)
- $Age_Heaps{$ns} = Heap::Fibonacci->new();
- $Use_Heaps{$ns} = Heap::Fibonacci->new();
+ $self->_init_ns_heaps($ns);
+
+ return;
}
sub count {
@@ -210,6 +218,9 @@ sub namespace {
sub set_namespace {
my Cache::Memory $self = shift;
my ($namespace) = @_;
+
+ $self->_init_ns_heaps($namespace);
+
$self->{namespace} = $namespace;
}
diff --git a/lib/Cache/Memory/Entry.pm b/lib/Cache/Memory/Entry.pm
index 7e0f5e7..62d36fa 100644
--- a/lib/Cache/Memory/Entry.pm
+++ b/lib/Cache/Memory/Entry.pm
@@ -25,7 +25,7 @@ use Carp;
use base qw(Cache::Entry);
use fields qw(store_entry);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
sub new {
@@ -45,7 +45,7 @@ sub new {
sub DESTROY {
my Cache::Memory::Entry $self = shift;
-
+
# drop the reference count and signal the cache if required
unless (--$self->{store_entry}->{rc}) {
$self->{cache}->entry_dropped_final_rc($self->{key});
diff --git a/lib/Cache/Null.pm b/lib/Cache/Null.pm
index d55426b..4641655 100644
--- a/lib/Cache/Null.pm
+++ b/lib/Cache/Null.pm
@@ -28,7 +28,7 @@ use Cache::Null::Entry;
use base qw(Cache);
use fields qw(cache_root);
-our $VERSION = '2.04';
+our $VERSION = '2.08';
=head1 CONSTRUCTOR
diff --git a/lib/Cache/Null/Entry.pm b/lib/Cache/Null/Entry.pm
index b2c982b..73a29ee 100644
--- a/lib/Cache/Null/Entry.pm
+++ b/lib/Cache/Null/Entry.pm
@@ -23,7 +23,7 @@ use Cache::IOString;
use base qw(Cache::Entry);
use fields qw();
-our $VERSION = '2.04';
+our $VERSION = '2.08';
sub new {
diff --git a/lib/Cache/RemovalStrategy.pm b/lib/Cache/RemovalStrategy.pm
index 229ab28..80daf88 100644
--- a/lib/Cache/RemovalStrategy.pm
+++ b/lib/Cache/RemovalStrategy.pm
@@ -16,7 +16,7 @@ use strict;
use warnings;
use Carp;
-our $VERSION = '2.04';
+our $VERSION = '2.08';
sub new {
@@ -40,6 +40,8 @@ sub remove_size;
1;
__END__
+=back
+
=head1 SEE ALSO
Cache
diff --git a/lib/Cache/Tester.pm b/lib/Cache/Tester.pm
index 4b19473..066d86f 100644
--- a/lib/Cache/Tester.pm
+++ b/lib/Cache/Tester.pm
@@ -32,7 +32,7 @@ use vars qw(@ISA @EXPORT $VERSION $CACHE_TESTS);
use Carp;
@ISA = qw(Exporter Test::More);
-$VERSION = "2.04";
+$VERSION = '2.08';
@EXPORT = (qw(run_cache_tests $CACHE_TESTS), @Test::More::EXPORT);
$CACHE_TESTS = 79;
@@ -172,7 +172,7 @@ sub test_cache_count {
$cache->set("key$_", "test");
}
_is($cache->count(), 100, 'cache count correct after multiple sets');
-
+
shuffle(\@keys);
foreach(@keys) {
$cache->remove("key$_");
@@ -198,9 +198,12 @@ sub test_expiry {
_ok(!$entry->exists(), 'entry set with instant expiry not added');
_is($cache->size(), $size, 'size is unchanged');
- $entry->set('test data', '1 sec');
- _ok($entry->exists(), 'entry with 1 sec timeout added');
- sleep(2);
+ # This is to fix/workaround the test failures by high load. See:
+ # https://rt.cpan.org/Public/Bug/Display.html?id=27280
+ my $delay = $ENV{PERL_CACHE_PM_TESTING} ? 1 : 3;
+ $entry->set('test data', "$delay sec");
+ _ok($entry->exists(), "entry with $delay sec timeout added");
+ sleep($delay+1);
_ok(!$entry->exists(), 'entry expired');
_is($cache->size(), $size, 'size is unchanged');
diff --git a/scripts/bump-version-number.pl b/scripts/bump-version-number.pl
new file mode 100644
index 0000000..027153d
--- /dev/null
+++ b/scripts/bump-version-number.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use File::Find::Object;
+use IO::All;
+
+my $tree = File::Find::Object->new({}, 'lib/');
+
+my $version_n = shift(@ARGV);
+
+if (!defined($version_n))
+{
+ die "Specify version number as an argument! bump-version-number.pl '0.0.1'";
+}
+
+while (my $r = $tree->next()) {
+ if ($r =~ m{/\.svn\z})
+ {
+ $tree->prune();
+ }
+ elsif ($r =~ m{\.pm\z})
+ {
+ my @lines = io->file($r)->getlines();
+ foreach (@lines)
+ {
+ s#(\$VERSION = '|^Version )\d+\.\d+(?:\.\d+)?('|)#$1 . $version_n . $2#e;
+ }
+ io->file($r)->print(
+ @lines
+ );
+ }
+}
+
diff --git a/t/memory_set_namespace_rt32339.t b/t/memory_set_namespace_rt32339.t
new file mode 100644
index 0000000..915bb71
--- /dev/null
+++ b/t/memory_set_namespace_rt32339.t
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+# Regression test for:
+# https://rt.cpan.org/Ticket/Display.html?id=32339
+
+use strict;
+use warnings;
+
+use Cache::Memory;
+use Test::More tests => 1;
+
+{
+ my $cache = Cache::Memory->new();
+ $cache->set('foo','bar');
+ $cache->set_namespace("OtherNameSpace");
+ # This used to die:
+ $cache->set('foo','bar2');
+ # TEST
+ ok (1, "Program finished successfully.");
+}
+
diff --git a/t/pod.t b/t/pod.t
new file mode 100644
index 0000000..976d7cd
--- /dev/null
+++ b/t/pod.t
@@ -0,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod 1.14";
+plan skip_all => "Test::Pod 1.14 required for testing POD" if $@;
+all_pod_files_ok();
diff --git a/t/style-trailing-space.t b/t/style-trailing-space.t
new file mode 100644
index 0000000..7b8ece4
--- /dev/null
+++ b/t/style-trailing-space.t
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval "use Test::TrailingSpace";
+if ($@)
+{
+ plan skip_all => "Test::TrailingSpace required for trailing space test.";
+}
+else
+{
+ plan tests => 1;
+}
+
+my $finder = Test::TrailingSpace->new(
+ {
+ root => '.',
+ filename_regex => qr/(?:(?:\.(?:t|pm|pl|PL|yml|json|arc|vim))|README|Changes|LICENSE|MANIFEST)\z/,
+ },
+);
+
+# TEST
+$finder->no_trailing_space(
+ "No trailing space was found."
+);
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libcache-perl.git
More information about the Pkg-perl-cvs-commits
mailing list