[libdancer-session-cookie-perl] 01/06: Imported Upstream version 0.24
Nuno Carvalho
smash at cpan.org
Wed Jul 30 15:01:15 UTC 2014
This is an automated email from the git hooks/post-receive script.
mestre-guest pushed a commit to branch master
in repository libdancer-session-cookie-perl.
commit de87ec91f10f718d63495580762eeee24d972ec7
Author: Nuno Carvalho <smash at cpan.org>
Date: Wed Jul 30 15:21:49 2014 +0100
Imported Upstream version 0.24
---
Build.PL | 95 +++++++++++++++++++++++++++++
CONTRIBUTORS | 14 +++++
Changes | 139 ++++++++++++++++++++++---------------------
INSTALL | 44 ++++++++++++++
LICENSE | 8 +--
MANIFEST | 20 +++----
MANIFEST.SKIP | 1 +
META.json | 55 ++++++++---------
META.yml | 89 +++++++++++++--------------
Makefile.PL | 95 -----------------------------
README | 25 +-------
README.mkdn | 82 +++++++++++++++++++++++++
README.pod | 135 +++++++++++++++++++++++++++++++++++++++++
SIGNATURE | 51 ++++++++++++++++
dist.ini | 13 ++--
lib/Dancer/Session/Cookie.pm | 52 ++++------------
t/00-compile.t | 94 +++++++++++------------------
t/00-report-prereqs.t | 86 --------------------------
t/000-report-versions-tiny.t | 99 ++++++++++++++++++++++++++++++
t/store-objects.t | 22 +++++++
xt/author/critic.t | 12 ----
xt/author/pod-spell.t | 36 -----------
xt/release/distmeta.t | 7 ---
xt/release/minimum-version.t | 8 ---
xt/release/pod-coverage.t | 13 ----
xt/release/pod-syntax.t | 7 ---
xt/release/portability.t | 12 ----
xt/release/test-version.t | 22 -------
xt/release/unused-vars.t | 14 +++++
29 files changed, 762 insertions(+), 588 deletions(-)
diff --git a/Build.PL b/Build.PL
new file mode 100644
index 0000000..ad44218
--- /dev/null
+++ b/Build.PL
@@ -0,0 +1,95 @@
+
+# This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v5.019.
+use strict;
+use warnings;
+
+use Module::Build 0.3601;
+
+
+my %module_build_args = (
+ "build_requires" => {
+ "Module::Build" => "0.3601"
+ },
+ "configure_requires" => {
+ "Module::Build" => "0.3601"
+ },
+ "dist_abstract" => "Encrypted cookie-based session backend for Dancer",
+ "dist_author" => [
+ "Alex Kapranoff <kappa\@cpan.org>",
+ "Alex Sukria <sukria\@cpan.org>",
+ "David Golden <dagolden\@cpan.org>",
+ "Yanick Champoux <yanick\@cpan.org>"
+ ],
+ "dist_name" => "Dancer-Session-Cookie",
+ "dist_version" => "0.24",
+ "license" => "perl",
+ "module_name" => "Dancer::Session::Cookie",
+ "recommends" => {},
+ "recursive_test_files" => 1,
+ "requires" => {
+ "Crypt::CBC" => 0,
+ "Crypt::Rijndael" => 0,
+ "Dancer" => "1.3113",
+ "Dancer::Cookie" => 0,
+ "Dancer::Cookies" => 0,
+ "Dancer::Session::Abstract" => 0,
+ "MIME::Base64" => 0,
+ "Session::Storage::Secure" => "0.010",
+ "Storable" => 0,
+ "String::CRC32" => 0,
+ "Time::Duration::Parse" => 0,
+ "base" => 0,
+ "strict" => 0,
+ "warnings" => 0
+ },
+ "script_files" => [],
+ "test_requires" => {
+ "Dancer::ModuleLoader" => 0,
+ "Dancer::Test" => 0,
+ "File::Spec" => 0,
+ "File::Temp" => 0,
+ "FindBin" => 0,
+ "HTTP::Cookies" => 0,
+ "HTTP::Date" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "LWP" => 0,
+ "LWP::UserAgent" => 0,
+ "Test::Exception" => 0,
+ "Test::More" => "0.96",
+ "Test::NoWarnings" => 0,
+ "Test::TCP" => 0,
+ "perl" => "5.006"
+ }
+);
+
+
+my %fallback_build_requires = (
+ "Dancer::ModuleLoader" => 0,
+ "Dancer::Test" => 0,
+ "File::Spec" => 0,
+ "File::Temp" => 0,
+ "FindBin" => 0,
+ "HTTP::Cookies" => 0,
+ "HTTP::Date" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "LWP" => 0,
+ "LWP::UserAgent" => 0,
+ "Module::Build" => "0.3601",
+ "Test::Exception" => 0,
+ "Test::More" => "0.96",
+ "Test::NoWarnings" => 0,
+ "Test::TCP" => 0,
+ "perl" => "5.006"
+);
+
+
+unless ( eval { Module::Build->VERSION(0.4004) } ) {
+ delete $module_build_args{test_requires};
+ $module_build_args{build_requires} = \%fallback_build_requires;
+}
+
+my $build = Module::Build->new(%module_build_args);
+
+$build->create_build_script;
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
new file mode 100644
index 0000000..449cafc
--- /dev/null
+++ b/CONTRIBUTORS
@@ -0,0 +1,14 @@
+
+# DANCER-SESSION-COOKIE CONTRIBUTORS #
+
+This is the (likely incomplete) list of people who have helped
+make this distribution what it is, either via code contributions,
+patches, bug reports, help with troubleshooting, etc. A huge
+thank to all of them.
+
+ * Breno G. de Oliveira <garu at cpan.org>
+ * Michael G. Schwern <schwern at pobox.com>
+ * Neil Kirsopp <neil at broadbean.com>
+ * Nick S. Knutov <nick at knutov.com>
+
+
diff --git a/Changes b/Changes
index 0554313..1507cc6 100644
--- a/Changes
+++ b/Changes
@@ -1,71 +1,74 @@
Revision history for Dancer-Session-Cookie
-0.22 2013-05-31 23:38:07 America/New_York
+0.24 2014-07-29
+ [MISC]
+ - Release again, this time with real co-maint permissions.
+
+ [STATISTICS]
+ - code churn: 1 file changed, 57 insertions(+), 53 deletions(-)
+
+0.23 2014-07-17
+ [CHANGED]
+ - Requires Session::Storage::Secure 0.010 to allow storing objects, which
+ is specially relevant for JSON::bool data.
+
+ [STATISTICS]
+ - code churn: 8 files changed, 67 insertions(+), 119 deletions(-)
+
+0.22 2013-05-31T23:38:07Z America/New_York
+ [CHANGED]
+ - Requires Session::Storage::Secure 0.007 for improved resistance to
+ timing attacks
+
+0.21 2013-05-08T22:33:10Z America/New_York
+ - Require Dancer 1.3113 and use its new features to fix more bugs that
+ caused sessions to not be set or reset correctly
+
+0.20 2013-04-25T11:41:22Z America/New_York
+ - Fix bug where session wasn't cleared correctly if route handler died
+ while processing a request
+
+0.19 2013-02-24T22:49:14Z America/New_York
+ - Fix bug with session_expires always expiring a cookie early
+
+0.18 2013-02-16T00:16:32Z America/New_York
+ - Hack around Dancer bug that renders the request object headers
+ repeatedly and locks out setting cookies after the first time
+
+0.17 2013-02-07T15:36:58Z America/New_York
+ - Fix localhost address used in tests
+
+0.16 2013-02-01T14:39:14Z America/New_York
+ - Now uses Session::Storage::Secure for encrypting and decrypting data;
+ Legacy decryption is preserved in case old cookies need to be read.
+ - Fix session destruction bug to ensure session is overwritten in the
+ browser, not just no longer sent (David Golden)
+
+0.15 2011-05-21
+ - skip test 02-configfile.t if YAML is not present FIX smoker test
+ failure. (Alexis Sukrieh)
+
+0.14 2011-03-12
+ [Michael G. Schwern]
+ - Fix for Dancer > v1.3012
+ - Add support for session_secure to serve https only cookies.
+ - Add missing MYMETA.yml
+ - Make Dancer::Session::Cookie honor the session_name setting
+ added to Dancer::Session::Abstract
+ - Add session_cookie_path to control the path of the cookie.
+
+0.13 2010-11-28T17:19:58Z
+ - Some documentation fixes. No functional change.
+
+0.12 2010-09-16T13:29:09Z
+ - Fix a warning when testing against newer Dancer. No functional
+ - change.
+
+0.11 2010-02-17T16:12:21Z
+ - Chase the ever-changing Dancer core :) No functional change.
+ - More tests.
+
+0.1 2010-02-02T17:20:11Z
+ - First version separated from the Dancer core. No functional
+ - change.
- [CHANGED]
-
- - Requires Session::Storage::Secure 0.007 for improved resistance
- to timing attacks
-
-0.21 2013-05-08 22:33:10 America/New_York
-
- - Require Dancer 1.3113 and use its new features to fix more bugs
- that caused sessions to not be set or reset correctly
-
-0.20 2013-04-25 11:41:22 America/New_York
-
- - Fix bug where session wasn't cleared correctly if route handler
- died while processing a request
-
-0.19 2013-02-24 22:49:14 America/New_York
-
- - Fix bug with session_expires always expiring a cookie early
-
-0.18 2013-02-16 00:16:32 America/New_York
-
- - Hack around Dancer bug that renders the request object headers
- repeatedly and locks out setting cookies after the first time
-
-0.17 2013-02-07 15:36:58 America/New_York
-
- - Fix localhost address used in tests
-
-0.16 2013-02-01 14:39:14 America/New_York
-
- - Now uses Session::Storage::Secure for encrypting and decrypting data;
- Legacy decryption is preserved in case old cookies need to be read.
-
- - Fix session destruction bug to ensure session is overwritten in
- the browser, not just no longer sent (David Golden)
-
-0.15 2011-05-21
-
- * skip test 02-configfile.t if YAML is not present
- FIX smoker test failure.
- (Alexis Sukrieh)
-
-0.14 2011-03-12
-
- [ Michael G. Schwern ]
-
- * Fix for Dancer > v1.3012
- * Add support for session_secure to serve https only cookies.
- * Add missing MYMETA.yml
- * Make Dancer::Session::Cookie honor the session_name setting
- added to Dancer::Session::Abstract
- * Add session_cookie_path to control the path of the cookie.
-
-0.13 Sun Nov 28 17:19:58 MSK 2010
- Some documentation fixes. No functional change.
-
-0.12 Thu Sep 16 13:29:09 MSD 2010
- Fix a warning when testing against newer Dancer. No functional
- change.
-
-0.11 Wed Feb 17 16:12:21 MSK 2010
- Chase the ever-changing Dancer core :) No functional change.
- More tests.
-
-0.1 Tue Feb 2 17:20:11 MSK 2010
- First version separated from the Dancer core. No functional
- change.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..980f905
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,44 @@
+
+This is the Perl distribution Dancer-Session-Cookie.
+
+Installing Dancer-Session-Cookie is straightforward.
+
+## Installation with cpanm
+
+If you have cpanm, you only need one line:
+
+ % cpanm Dancer::Session::Cookie
+
+If you are installing into a system-wide directory, you may need to pass the
+"-S" flag to cpanm, which uses sudo to install the module:
+
+ % cpanm -S Dancer::Session::Cookie
+
+## Installing with the CPAN shell
+
+Alternatively, if your CPAN shell is set up, you should just be able to do:
+
+ % cpan Dancer::Session::Cookie
+
+## Manual installation
+
+As a last resort, you can manually install it. Download the tarball, untar it,
+then build it:
+
+ % perl Build.PL
+ % ./Build && ./Build test
+
+Then install it:
+
+ % ./Build install
+
+If you are installing into a system-wide directory, you may need to run:
+
+ % sudo ./Build install
+
+## Documentation
+
+Dancer-Session-Cookie documentation is available as POD.
+You can run perldoc from a shell to read the documentation:
+
+ % perldoc Dancer::Session::Cookie
diff --git a/LICENSE b/LICENSE
index b4b06bb..943d221 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Alex Kapranoff.
+This software is copyright (c) 2014 by Alex Kapranoff.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by Alex Kapranoff.
+This software is Copyright (c) 2014 by Alex Kapranoff.
This is free software, licensed under:
@@ -22,7 +22,7 @@ This is free software, licensed under:
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by Alex Kapranoff.
+This software is Copyright (c) 2014 by Alex Kapranoff.
This is free software, licensed under:
diff --git a/MANIFEST b/MANIFEST
index 5cb56e8..c27d786 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,14 +1,20 @@
+Build.PL
+CONTRIBUTORS
Changes
+INSTALL
LICENSE
MANIFEST
+MANIFEST.SKIP
META.json
META.yml
-Makefile.PL
README
+README.mkdn
+README.pod
+SIGNATURE
dist.ini
lib/Dancer/Session/Cookie.pm
t/00-compile.t
-t/00-report-prereqs.t
+t/000-report-versions-tiny.t
t/01-session.t
t/02-configfile.t
t/03-path.t
@@ -19,11 +25,5 @@ t/data/config.yml
t/redirect-session-dancer.t
t/server.t
t/session-stealing.t
-xt/author/critic.t
-xt/author/pod-spell.t
-xt/release/distmeta.t
-xt/release/minimum-version.t
-xt/release/pod-coverage.t
-xt/release/pod-syntax.t
-xt/release/portability.t
-xt/release/test-version.t
+t/store-objects.t
+xt/release/unused-vars.t
diff --git a/MANIFEST.SKIP b/MANIFEST.SKIP
new file mode 100644
index 0000000..14b1137
--- /dev/null
+++ b/MANIFEST.SKIP
@@ -0,0 +1 @@
+^Dancer-Session-Cookie.*
diff --git a/META.json b/META.json
index 100c49c..0215c84 100644
--- a/META.json
+++ b/META.json
@@ -3,10 +3,11 @@
"author" : [
"Alex Kapranoff <kappa at cpan.org>",
"Alex Sukria <sukria at cpan.org>",
- "David Golden <dagolden at cpan.org>"
+ "David Golden <dagolden at cpan.org>",
+ "Yanick Champoux <yanick at cpan.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.131490",
+ "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.140640",
"license" : [
"perl_5"
],
@@ -15,29 +16,20 @@
"version" : "2"
},
"name" : "Dancer-Session-Cookie",
- "no_index" : {
- "directory" : [
- "t",
- "xt",
- "examples",
- "corpus"
- ],
- "package" : [
- "DB"
- ]
- },
"prereqs" : {
+ "build" : {
+ "requires" : {
+ "Module::Build" : "0.3601"
+ }
+ },
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "Module::Build" : "0.3601"
}
},
"develop" : {
"requires" : {
- "Pod::Coverage::TrustPod" : "0",
- "Test::CPAN::Meta" : "0",
- "Test::Pod" : "1.41",
- "Test::Pod::Coverage" : "1.08"
+ "version" : "0.9901"
}
},
"runtime" : {
@@ -49,12 +41,11 @@
"Dancer::Cookies" : "0",
"Dancer::Session::Abstract" : "0",
"MIME::Base64" : "0",
- "Session::Storage::Secure" : "0.007",
+ "Session::Storage::Secure" : "0.010",
"Storable" : "0",
"String::CRC32" : "0",
"Time::Duration::Parse" : "0",
"base" : "0",
- "perl" : "5.006",
"strict" : "0",
"warnings" : "0"
}
@@ -62,44 +53,46 @@
"test" : {
"requires" : {
"Dancer::ModuleLoader" : "0",
- "ExtUtils::MakeMaker" : "0",
- "File::Find" : "0",
+ "Dancer::Test" : "0",
"File::Spec" : "0",
- "File::Spec::Functions" : "0",
"File::Temp" : "0",
"FindBin" : "0",
"HTTP::Cookies" : "0",
"HTTP::Date" : "0",
+ "IO::Handle" : "0",
+ "IPC::Open3" : "0",
"LWP" : "0",
"LWP::UserAgent" : "0",
- "List::Util" : "0",
"Test::Exception" : "0",
"Test::More" : "0.96",
"Test::NoWarnings" : "0",
- "Test::TCP" : "0"
+ "Test::TCP" : "0",
+ "perl" : "5.006"
}
}
},
"provides" : {
"Dancer::Session::Cookie" : {
"file" : "lib/Dancer/Session/Cookie.pm",
- "version" : "0.22"
+ "version" : "0.24"
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "web" : "https://github.com/dagolden/dancer-session-cookie/issues"
+ "web" : "https://github.com/perldancer/Dancer-Session-Cookie/issues"
},
- "homepage" : "https://metacpan.org/release/Dancer-Session-Cookie",
+ "homepage" : "http://search.cpan.org/dist/Dancer-Session-Cookie/",
"repository" : {
"type" : "git",
- "url" : "git://github.com/dagolden/dancer-session-cookie.git",
- "web" : "https://github.com/dagolden/dancer-session-cookie"
+ "url" : "https://github.com/perldancer/Dancer-Session-Cookie.git",
+ "web" : "https://github.com/perldancer/Dancer-Session-Cookie"
}
},
- "version" : "0.22",
+ "version" : "0.24",
+ "x_authority" : "cpan:YANICK",
"x_contributors" : [
+ "Breno G. de Oliveira <garu at cpan.org>",
"Michael G. Schwern <schwern at pobox.com>",
"Neil Kirsopp <neil at broadbean.com>",
"Nick S. Knutov <nick at knutov.com>"
diff --git a/META.yml b/META.yml
index 3c25884..daef695 100644
--- a/META.yml
+++ b/META.yml
@@ -4,66 +4,61 @@ author:
- 'Alex Kapranoff <kappa at cpan.org>'
- 'Alex Sukria <sukria at cpan.org>'
- 'David Golden <dagolden at cpan.org>'
+ - 'Yanick Champoux <yanick at cpan.org>'
build_requires:
- Dancer::ModuleLoader: 0
- ExtUtils::MakeMaker: 0
- File::Find: 0
- File::Spec: 0
- File::Spec::Functions: 0
- File::Temp: 0
- FindBin: 0
- HTTP::Cookies: 0
- HTTP::Date: 0
- LWP: 0
- LWP::UserAgent: 0
- List::Util: 0
- Test::Exception: 0
- Test::More: 0.96
- Test::NoWarnings: 0
- Test::TCP: 0
+ Dancer::ModuleLoader: '0'
+ Dancer::Test: '0'
+ File::Spec: '0'
+ File::Temp: '0'
+ FindBin: '0'
+ HTTP::Cookies: '0'
+ HTTP::Date: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
+ LWP: '0'
+ LWP::UserAgent: '0'
+ Module::Build: '0.3601'
+ Test::Exception: '0'
+ Test::More: '0.96'
+ Test::NoWarnings: '0'
+ Test::TCP: '0'
+ perl: '5.006'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ Module::Build: '0.3601'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.131490'
+generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.140640'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Dancer-Session-Cookie
-no_index:
- directory:
- - t
- - xt
- - examples
- - corpus
- package:
- - DB
provides:
Dancer::Session::Cookie:
file: lib/Dancer/Session/Cookie.pm
- version: 0.22
+ version: '0.24'
requires:
- Crypt::CBC: 0
- Crypt::Rijndael: 0
- Dancer: 1.3113
- Dancer::Cookie: 0
- Dancer::Cookies: 0
- Dancer::Session::Abstract: 0
- MIME::Base64: 0
- Session::Storage::Secure: 0.007
- Storable: 0
- String::CRC32: 0
- Time::Duration::Parse: 0
- base: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ Crypt::CBC: '0'
+ Crypt::Rijndael: '0'
+ Dancer: '1.3113'
+ Dancer::Cookie: '0'
+ Dancer::Cookies: '0'
+ Dancer::Session::Abstract: '0'
+ MIME::Base64: '0'
+ Session::Storage::Secure: '0.010'
+ Storable: '0'
+ String::CRC32: '0'
+ Time::Duration::Parse: '0'
+ base: '0'
+ strict: '0'
+ warnings: '0'
resources:
- bugtracker: https://github.com/dagolden/dancer-session-cookie/issues
- homepage: https://metacpan.org/release/Dancer-Session-Cookie
- repository: git://github.com/dagolden/dancer-session-cookie.git
-version: 0.22
+ bugtracker: https://github.com/perldancer/Dancer-Session-Cookie/issues
+ homepage: http://search.cpan.org/dist/Dancer-Session-Cookie/
+ repository: https://github.com/perldancer/Dancer-Session-Cookie.git
+version: '0.24'
+x_authority: cpan:YANICK
x_contributors:
+ - 'Breno G. de Oliveira <garu at cpan.org>'
- 'Michael G. Schwern <schwern at pobox.com>'
- 'Neil Kirsopp <neil at broadbean.com>'
- 'Nick S. Knutov <nick at knutov.com>'
diff --git a/Makefile.PL b/Makefile.PL
deleted file mode 100644
index 966133d..0000000
--- a/Makefile.PL
+++ /dev/null
@@ -1,95 +0,0 @@
-
-use strict;
-use warnings;
-
-use 5.006;
-
-use ExtUtils::MakeMaker 6.30;
-
-
-
-my %WriteMakefileArgs = (
- "ABSTRACT" => "Encrypted cookie-based session backend for Dancer",
- "AUTHOR" => "Alex Kapranoff <kappa\@cpan.org>, Alex Sukria <sukria\@cpan.org>, David Golden <dagolden\@cpan.org>",
- "BUILD_REQUIRES" => {},
- "CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
- },
- "DISTNAME" => "Dancer-Session-Cookie",
- "EXE_FILES" => [],
- "LICENSE" => "perl",
- "NAME" => "Dancer::Session::Cookie",
- "PREREQ_PM" => {
- "Crypt::CBC" => 0,
- "Crypt::Rijndael" => 0,
- "Dancer" => "1.3113",
- "Dancer::Cookie" => 0,
- "Dancer::Cookies" => 0,
- "Dancer::Session::Abstract" => 0,
- "MIME::Base64" => 0,
- "Session::Storage::Secure" => "0.007",
- "Storable" => 0,
- "String::CRC32" => 0,
- "Time::Duration::Parse" => 0,
- "base" => 0,
- "strict" => 0,
- "warnings" => 0
- },
- "TEST_REQUIRES" => {
- "Dancer::ModuleLoader" => 0,
- "ExtUtils::MakeMaker" => 0,
- "File::Find" => 0,
- "File::Spec" => 0,
- "File::Spec::Functions" => 0,
- "File::Temp" => 0,
- "FindBin" => 0,
- "HTTP::Cookies" => 0,
- "HTTP::Date" => 0,
- "LWP" => 0,
- "LWP::UserAgent" => 0,
- "List::Util" => 0,
- "Test::Exception" => 0,
- "Test::More" => "0.96",
- "Test::NoWarnings" => 0,
- "Test::TCP" => 0
- },
- "VERSION" => "0.22",
- "test" => {
- "TESTS" => "t/*.t"
- }
-);
-
-
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
- my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
- my $br = $WriteMakefileArgs{BUILD_REQUIRES};
- for my $mod ( keys %$tr ) {
- if ( exists $br->{$mod} ) {
- $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
- }
- else {
- $br->{$mod} = $tr->{$mod};
- }
- }
-}
-
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
-}
-
-delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
- unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
-
-WriteMakefile(%WriteMakefileArgs);
-
-
-
diff --git a/README b/README
index 1cb2f92..9ce4da8 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ NAME
Dancer
VERSION
- version 0.22
+ version 0.24
SYNOPSIS
Your config.yml:
@@ -61,20 +61,6 @@ SEE ALSO
Catalyst::Plugin::CookiedSession, "session" in Mojolicious::Controller
for alternative implementation of this mechanism.
-SUPPORT
- Bugs / Feature Requests
- Please report any bugs or feature requests through the issue tracker at
- <https://github.com/dagolden/dancer-session-cookie/issues>. You will be
- notified automatically of any progress on your issue.
-
- Source Code
- This is open source software. The code repository is available for
- public review and contribution under the terms of the license.
-
- <https://github.com/dagolden/dancer-session-cookie>
-
- git clone git://github.com/dagolden/dancer-session-cookie.git
-
AUTHORS
* Alex Kapranoff <kappa at cpan.org>
@@ -82,15 +68,10 @@ AUTHORS
* David Golden <dagolden at cpan.org>
-CONTRIBUTORS
- * Michael G. Schwern <schwern at pobox.com>
-
- * Neil Kirsopp <neil at broadbean.com>
-
- * Nick S. Knutov <nick at knutov.com>
+ * Yanick Champoux <yanick at cpan.org>
COPYRIGHT AND LICENSE
- This software is copyright (c) 2013 by Alex Kapranoff.
+ This software is copyright (c) 2014 by Alex Kapranoff.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/README.mkdn b/README.mkdn
new file mode 100644
index 0000000..1be6dae
--- /dev/null
+++ b/README.mkdn
@@ -0,0 +1,82 @@
+# NAME
+
+Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer
+
+# VERSION
+
+version 0.24
+
+# SYNOPSIS
+
+Your `config.yml`:
+
+ session: "cookie"
+ session_cookie_key: "this random key IS NOT very random"
+
+# DESCRIPTION
+
+This module implements a session engine for sessions stored entirely
+in cookies. Usually only **session id** is stored in cookies and
+the session data itself is saved in some external storage, e.g.
+database. This module allows to avoid using external storage at
+all.
+
+Since server cannot trust any data returned by client in cookies, this
+module uses cryptography to ensure integrity and also secrecy. The
+data your application stores in sessions is completely protected from
+both tampering and analysis on the client-side.
+
+# CONFIGURATION
+
+The setting **session** should be set to `cookie` in order to use this session
+engine in a Dancer application. See [Dancer::Config](https://metacpan.org/pod/Dancer::Config).
+
+A mandatory setting is needed as well: **session\_cookie\_key**, which should
+contain a random string of at least 16 characters (shorter keys are
+not cryptographically strong using AES in CBC mode).
+
+Here is an example configuration to use in your `config.yml`:
+
+ session: "cookie"
+ session_cookie_key: "kjsdf07234hjf0sdkflj12*&(@*jk"
+
+Compromising **session\_cookie\_key** will disclose session data to
+clients and proxies or eavesdroppers and will also allow tampering,
+for example session theft. So, your `config.yml` should be kept at
+least as secure as your database passwords or even more.
+
+Also, changing **session\_cookie\_key** will have an effect of immediate
+invalidation of all sessions issued with the old value of key.
+
+**session\_cookie\_path** can be used to control the path of the session
+cookie. The default is /.
+
+The global **session\_secure** setting is honoured and a secure (https
+only) cookie will be used if set.
+
+# DEPENDENCY
+
+This module depends on [Session::Storage::Secure](https://metacpan.org/pod/Session::Storage::Secure). Legacy support is provided
+using [Crypt::CBC](https://metacpan.org/pod/Crypt::CBC), [Crypt::Rijndael](https://metacpan.org/pod/Crypt::Rijndael), [String::CRC32](https://metacpan.org/pod/String::CRC32), [Storable](https://metacpan.org/pod/Storable) and
+[MIME::Base64](https://metacpan.org/pod/MIME::Base64).
+
+# SEE ALSO
+
+See [Dancer::Session](https://metacpan.org/pod/Dancer::Session) for details about session usage in route handlers.
+
+See [Plack::Middleware::Session::Cookie](https://metacpan.org/pod/Plack::Middleware::Session::Cookie),
+[Catalyst::Plugin::CookiedSession](https://metacpan.org/pod/Catalyst::Plugin::CookiedSession), ["session" in Mojolicious::Controller](https://metacpan.org/pod/Mojolicious::Controller#session) for alternative implementation of this mechanism.
+
+# AUTHORS
+
+- Alex Kapranoff <kappa at cpan.org>
+- Alex Sukria <sukria at cpan.org>
+- David Golden <dagolden at cpan.org>
+- Yanick Champoux <yanick at cpan.org> [](http://coderwall.com/yanick)
+
+# COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2014 by Alex Kapranoff.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
diff --git a/README.pod b/README.pod
new file mode 100644
index 0000000..e26b0a8
--- /dev/null
+++ b/README.pod
@@ -0,0 +1,135 @@
+=pod
+
+=encoding utf-8
+
+=head1 NAME
+
+Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer
+
+=head1 VERSION
+
+version 0.22
+
+=head1 SYNOPSIS
+
+Your F<config.yml>:
+
+ session: "cookie"
+ session_cookie_key: "this random key IS NOT very random"
+
+=head1 DESCRIPTION
+
+This module implements a session engine for sessions stored entirely
+in cookies. Usually only B<session id> is stored in cookies and
+the session data itself is saved in some external storage, e.g.
+database. This module allows to avoid using external storage at
+all.
+
+Since server cannot trust any data returned by client in cookies, this
+module uses cryptography to ensure integrity and also secrecy. The
+data your application stores in sessions is completely protected from
+both tampering and analysis on the client-side.
+
+=head1 CONFIGURATION
+
+The setting B<session> should be set to C<cookie> in order to use this session
+engine in a Dancer application. See L<Dancer::Config>.
+
+A mandatory setting is needed as well: B<session_cookie_key>, which should
+contain a random string of at least 16 characters (shorter keys are
+not cryptographically strong using AES in CBC mode).
+
+Here is an example configuration to use in your F<config.yml>:
+
+ session: "cookie"
+ session_cookie_key: "kjsdf07234hjf0sdkflj12*&(@*jk"
+
+Compromising B<session_cookie_key> will disclose session data to
+clients and proxies or eavesdroppers and will also allow tampering,
+for example session theft. So, your F<config.yml> should be kept at
+least as secure as your database passwords or even more.
+
+Also, changing B<session_cookie_key> will have an effect of immediate
+invalidation of all sessions issued with the old value of key.
+
+B<session_cookie_path> can be used to control the path of the session
+cookie. The default is /.
+
+The global B<session_secure> setting is honoured and a secure (https
+only) cookie will be used if set.
+
+=head1 DEPENDENCY
+
+This module depends on L<Session::Storage::Secure>. Legacy support is provided
+using L<Crypt::CBC>, L<Crypt::Rijndael>, L<String::CRC32>, L<Storable> and
+L<MIME::Base64>.
+
+=head1 SEE ALSO
+
+See L<Dancer::Session> for details about session usage in route handlers.
+
+See L<Plack::Middleware::Session::Cookie>,
+L<Catalyst::Plugin::CookiedSession>, L<Mojolicious::Controller/session> for alternative implementation of this mechanism.
+
+=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
+
+=head1 SUPPORT
+
+=head2 Bugs / Feature Requests
+
+Please report any bugs or feature requests through the issue tracker
+at L<https://github.com/dagolden/dancer-session-cookie/issues>.
+You will be notified automatically of any progress on your issue.
+
+=head2 Source Code
+
+This is open source software. The code repository is available for
+public review and contribution under the terms of the license.
+
+L<https://github.com/dagolden/dancer-session-cookie>
+
+ git clone git://github.com/dagolden/dancer-session-cookie.git
+
+=head1 AUTHORS
+
+=over 4
+
+=item *
+
+Alex Kapranoff <kappa at cpan.org>
+
+=item *
+
+Alex Sukria <sukria at cpan.org>
+
+=item *
+
+David Golden <dagolden at cpan.org>
+
+=back
+
+=head1 CONTRIBUTORS
+
+=over 4
+
+=item *
+
+Michael G. Schwern <schwern at pobox.com>
+
+=item *
+
+Neil Kirsopp <neil at broadbean.com>
+
+=item *
+
+Nick S. Knutov <nick at knutov.com>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2013 by Alex Kapranoff.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
diff --git a/SIGNATURE b/SIGNATURE
new file mode 100644
index 0000000..36b113a
--- /dev/null
+++ b/SIGNATURE
@@ -0,0 +1,51 @@
+This file contains message digests of all files listed in MANIFEST,
+signed via the Module::Signature module, version 0.73.
+
+To verify the content in this distribution, first make sure you have
+Module::Signature installed, then type:
+
+ % cpansign -v
+
+It will check each file's integrity, as well as the signature's
+validity. If "==> Signature verified OK! <==" is not displayed,
+the distribution may already have been compromised, and you should
+not run its Makefile.PL or Build.PL.
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+SHA1 de3de820aaf7de6a2031053921b227ff63238a21 Build.PL
+SHA1 48ff8525f9bb95f588978c21364015dd99f67bb8 CONTRIBUTORS
+SHA1 ce1443fa554d6f5077d10ca2fc9ebc83557aa4e1 Changes
+SHA1 c98e02fd3990b3b62eb4fc324b92a1fba92ace53 INSTALL
+SHA1 2a6414727e0074d2cef6b4167fa0b29454553c01 LICENSE
+SHA1 8b7939d6e39dcd53286c67360de0dd6737b627f1 MANIFEST
+SHA1 c5772bbbfecb397596dd40178064698e7dbfd09d MANIFEST.SKIP
+SHA1 d9768f0db411d1d59a07d74df79f02438d72fcdd META.json
+SHA1 2079bc54bc75e601480fb26b2601c4b85948d233 META.yml
+SHA1 124ceddbfdd3f35fcb4a7a6b48e13fcdf9044e6f README
+SHA1 506c559f3b976b6533c6e7f319b576c6daa8138c README.mkdn
+SHA1 62d22f798d395e4bffccdb58659ca4e3e5624c66 README.pod
+SHA1 9774967f9c6b5c9659307544b5c7c4ccc9cb1f03 dist.ini
+SHA1 1c10bf3017224c5049b450af03675c6ff2e89554 lib/Dancer/Session/Cookie.pm
+SHA1 163bf20b59b97196261f02963acca2fac83b6cbd t/00-compile.t
+SHA1 bf2513d36d4b421f0fa76af587eb70f095d073e6 t/000-report-versions-tiny.t
+SHA1 9cb51a810ef592ec1d3cb21525e987d70b3291cd t/01-session.t
+SHA1 2d07fabcb69b5852d93b3569f6ff0a711bfd7aaf t/02-configfile.t
+SHA1 573b7e63fb84bed7ff5c95b1628ebcd6e9940c1a t/03-path.t
+SHA1 16caf79a98eb428a808a804c8cf2e1b90d10301e t/04-session_name.t
+SHA1 a00dfdeb42af8f5f51cedd10af6292191ded2458 t/05-session_secure.t
+SHA1 be86fdc41d72e971e74f143e4d83099b26c9452b t/06-redirect.t
+SHA1 f6c45320f8fe14723a8f2e2510021c6b81d0ef0c t/data/config.yml
+SHA1 ea91ce45a7466561c5c62be83fb0fc45f35db21a t/redirect-session-dancer.t
+SHA1 6c099c54393367f5f5a21dc76a490db58de7fa08 t/server.t
+SHA1 2b3f7051280c0e2826f3fd8cb3c5721500055417 t/session-stealing.t
+SHA1 a960ffdbb5965f6a8f5f00ca58319cb22b7e8da0 t/store-objects.t
+SHA1 d1fe7d94b3edc7847eb187d4ee41f66e19cf8907 xt/release/unused-vars.t
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iEYEARECAAYFAlPXlOwACgkQ34Hwf+GwC4zuVwCePS7/YDc+4fLGeYtaNIT+aF7J
+qosAnAmWJSmshgbz2bC8Ls4oDMt/8sVw
+=0ARY
+-----END PGP SIGNATURE-----
diff --git a/dist.ini b/dist.ini
index f883449..da751dd 100644
--- a/dist.ini
+++ b/dist.ini
@@ -2,15 +2,10 @@ name = Dancer-Session-Cookie
author = Alex Kapranoff <kappa at cpan.org>
author = Alex Sukria <sukria at cpan.org>
author = David Golden <dagolden at cpan.org>
+author = Yanick Champoux <yanick at cpan.org>
license = Perl_5
copyright_holder = Alex Kapranoff
-[@DAGOLDEN]
-:version = 0.036
-AutoMetaResources.bugtracker.rt = 0
-AutoMetaResources.bugtracker.github = user:dagolden
-stopwords = AES
-stopwords = Kirsopp
-stopwords = cryptographically
-stopwords = honoured
-stopwords = https
+[@Filter]
+-bundle=@YANICK
+-remove=Covenant
diff --git a/lib/Dancer/Session/Cookie.pm b/lib/Dancer/Session/Cookie.pm
index df3d403..04df0ed 100644
--- a/lib/Dancer/Session/Cookie.pm
+++ b/lib/Dancer/Session/Cookie.pm
@@ -1,12 +1,16 @@
package Dancer::Session::Cookie;
+BEGIN {
+ $Dancer::Session::Cookie::AUTHORITY = 'cpan:YANICK';
+}
+$Dancer::Session::Cookie::VERSION = '0.24';
use strict;
use warnings;
# ABSTRACT: Encrypted cookie-based session backend for Dancer
-our $VERSION = '0.22'; # VERSION
+# VERSION
use base 'Dancer::Session::Abstract';
-use Session::Storage::Secure 0.007;
+use Session::Storage::Secure 0.010;
use Crypt::CBC;
use String::CRC32;
use Crypt::Rijndael;
@@ -45,6 +49,8 @@ sub init {
$STORE = Session::Storage::Secure->new(
secret_key => $key,
( $duration ? ( default_duration => $duration ) : () ),
+ sereal_encoder_options => { snappy => 1, stringify_unknown => 1 },
+ sereal_decoder_options => { validate_utf8 => 1 },
);
}
@@ -86,7 +92,6 @@ sub _old_retrieve {
}
sub create {
- my $class = shift;
# cache the newly created session
return $SESSION = Dancer::Session::Cookie->new;
}
@@ -184,7 +189,7 @@ sub _old_decrypt {
=pod
-=encoding utf-8
+=encoding UTF-8
=head1 NAME
@@ -192,7 +197,7 @@ Dancer::Session::Cookie - Encrypted cookie-based session backend for Dancer
=head1 VERSION
-version 0.22
+version 0.24
=head1 SYNOPSIS
@@ -255,25 +260,6 @@ See L<Dancer::Session> for details about session usage in route handlers.
See L<Plack::Middleware::Session::Cookie>,
L<Catalyst::Plugin::CookiedSession>, L<Mojolicious::Controller/session> for alternative implementation of this mechanism.
-=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
-
-=head1 SUPPORT
-
-=head2 Bugs / Feature Requests
-
-Please report any bugs or feature requests through the issue tracker
-at L<https://github.com/dagolden/dancer-session-cookie/issues>.
-You will be notified automatically of any progress on your issue.
-
-=head2 Source Code
-
-This is open source software. The code repository is available for
-public review and contribution under the terms of the license.
-
-L<https://github.com/dagolden/dancer-session-cookie>
-
- git clone git://github.com/dagolden/dancer-session-cookie.git
-
=head1 AUTHORS
=over 4
@@ -290,29 +276,15 @@ Alex Sukria <sukria at cpan.org>
David Golden <dagolden at cpan.org>
-=back
-
-=head1 CONTRIBUTORS
-
-=over 4
-
-=item *
-
-Michael G. Schwern <schwern at pobox.com>
-
-=item *
-
-Neil Kirsopp <neil at broadbean.com>
-
=item *
-Nick S. Knutov <nick at knutov.com>
+Yanick Champoux <yanick at cpan.org>
=back
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Alex Kapranoff.
+This software is copyright (c) 2014 by Alex Kapranoff.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
diff --git a/t/00-compile.t b/t/00-compile.t
index 6454c82..95ce455 100644
--- a/t/00-compile.t
+++ b/t/00-compile.t
@@ -1,74 +1,50 @@
-#!perl
-
+use 5.006;
use strict;
use warnings;
-use Test::More;
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.043
+use Test::More tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
-use File::Find;
-use File::Temp qw{ tempdir };
-my @modules;
-find(
- sub {
- return if $File::Find::name !~ /\.pm\z/;
- my $found = $File::Find::name;
- $found =~ s{^lib/}{};
- $found =~ s{[/\\]}{::}g;
- $found =~ s/\.pm$//;
- # nothing to skip
- push @modules, $found;
- },
- 'lib',
+my @module_files = (
+ 'Dancer/Session/Cookie.pm'
);
-sub _find_scripts {
- my $dir = shift @_;
-
- my @found_scripts = ();
- find(
- sub {
- return unless -f;
- my $found = $File::Find::name;
- # nothing to skip
- open my $FH, '<', $_ or do {
- note( "Unable to open $found in ( $! ), skipping" );
- return;
- };
- my $shebang = <$FH>;
- return unless $shebang =~ /^#!.*?\bperl\b\s*$/;
- push @found_scripts, $found;
- },
- $dir,
- );
-
- return @found_scripts;
-}
-my @scripts;
-do { push @scripts, _find_scripts($_) if -d $_ }
- for qw{ bin script scripts };
-my $plan = scalar(@modules) + scalar(@scripts);
-$plan ? (plan tests => $plan) : (plan skip_all => "no tests to run");
+# no fake home requested
+
+my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
+use File::Spec;
+use IPC::Open3;
+use IO::Handle;
+
+open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
+
+my @warnings;
+for my $lib (@module_files)
{
- # fake home for cpan-testers
- local $ENV{HOME} = tempdir( CLEANUP => 1 );
-
- like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
- for sort @modules;
-
- SKIP: {
- eval "use Test::Script 1.05; 1;";
- skip "Test::Script needed to test script compilation", scalar(@scripts) if $@;
- foreach my $file ( @scripts ) {
- my $script = $file;
- $script =~ s!.*/!!;
- script_compiles( $file, "$script script compiles" );
- }
+ # see L<perlfaq8/How can I capture STDERR from an external command?>
+ my $stderr = IO::Handle->new;
+
+ my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
+ binmode $stderr, ':crlf' if $^O eq 'MSWin32';
+ my @_warnings = <$stderr>;
+ waitpid($pid, 0);
+ is($?, 0, "$lib loaded ok");
+
+ if (@_warnings)
+ {
+ warn @_warnings;
+ push @warnings, @_warnings;
}
-
}
+
+
+
+is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+
+
diff --git a/t/00-report-prereqs.t b/t/00-report-prereqs.t
deleted file mode 100644
index 1607b99..0000000
--- a/t/00-report-prereqs.t
+++ /dev/null
@@ -1,86 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More tests => 1;
-
-use ExtUtils::MakeMaker;
-use File::Spec::Functions;
-use List::Util qw/max/;
-
-my @modules = qw(
- Crypt::CBC
- Crypt::Rijndael
- Dancer
- Dancer::Cookie
- Dancer::Cookies
- Dancer::ModuleLoader
- Dancer::Session::Abstract
- ExtUtils::MakeMaker
- File::Find
- File::Spec
- File::Spec::Functions
- File::Temp
- FindBin
- HTTP::Cookies
- HTTP::Date
- LWP
- LWP::UserAgent
- List::Util
- MIME::Base64
- Session::Storage::Secure
- Storable
- String::CRC32
- Test::Exception
- Test::More
- Test::NoWarnings
- Test::TCP
- Time::Duration::Parse
- base
- perl
- strict
- warnings
-);
-
-# replace modules with dynamic results from MYMETA.json if we can
-# (hide CPAN::Meta from prereq scanner)
-my $cpan_meta = "CPAN::Meta";
-if ( -f "MYMETA.json" && eval "require $cpan_meta" ) { ## no critic
- if ( my $meta = eval { CPAN::Meta->load_file("MYMETA.json") } ) {
- my $prereqs = $meta->prereqs;
- delete $prereqs->{develop};
- my %uniq = map {$_ => 1} map { keys %$_ } map { values %$_ } values %$prereqs;
- $uniq{$_} = 1 for @modules; # don't lose any static ones
- @modules = sort keys %uniq;
- }
-}
-
-my @reports = [qw/Version Module/];
-
-for my $mod ( @modules ) {
- next if $mod eq 'perl';
- my $file = $mod;
- $file =~ s{::}{/}g;
- $file .= ".pm";
- my ($prefix) = grep { -e catfile($_, $file) } @INC;
- if ( $prefix ) {
- my $ver = MM->parse_version( catfile($prefix, $file) );
- $ver = "undef" unless defined $ver; # Newer MM should do this anyway
- push @reports, [$ver, $mod];
- }
- else {
- push @reports, ["missing", $mod];
- }
-}
-
-if ( @reports ) {
- my $vl = max map { length $_->[0] } @reports;
- my $ml = max map { length $_->[1] } @reports;
- splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
- diag "Prerequisite Report:\n", map {sprintf(" %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
-}
-
-pass;
-
-# vim: ts=2 sts=2 sw=2 et:
diff --git a/t/000-report-versions-tiny.t b/t/000-report-versions-tiny.t
new file mode 100644
index 0000000..328eb1a
--- /dev/null
+++ b/t/000-report-versions-tiny.t
@@ -0,0 +1,99 @@
+use strict;
+use warnings;
+use Test::More 0.88;
+# This is a relatively nice way to avoid Test::NoWarnings breaking our
+# expectations by adding extra tests, without using no_plan. It also helps
+# avoid any other test module that feels introducing random tests, or even
+# test plans, is a nice idea.
+our $success = 0;
+END { $success && done_testing; }
+
+# List our own version used to generate this
+my $v = "\nGenerated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.10\n";
+
+eval { # no excuses!
+ # report our Perl details
+ my $want = '5.006';
+ $v .= "perl: $] (wanted $want) on $^O from $^X\n\n";
+};
+defined($@) and diag("$@");
+
+# Now, our module version dependencies:
+sub pmver {
+ my ($module, $wanted) = @_;
+ $wanted = " (want $wanted)";
+ my $pmver;
+ eval "require $module;";
+ if ($@) {
+ if ($@ =~ m/Can't locate .* in \@INC/) {
+ $pmver = 'module not found.';
+ } else {
+ diag("${module}: $@");
+ $pmver = 'died during require.';
+ }
+ } else {
+ my $version;
+ eval { $version = $module->VERSION; };
+ if ($@) {
+ diag("${module}: $@");
+ $pmver = 'died during VERSION check.';
+ } elsif (defined $version) {
+ $pmver = "$version";
+ } else {
+ $pmver = '<undef>';
+ }
+ }
+
+ # So, we should be good, right?
+ return sprintf('%-45s => %-10s%-15s%s', $module, $pmver, $wanted, "\n");
+}
+
+eval { $v .= pmver('Crypt::CBC','any version') };
+eval { $v .= pmver('Crypt::Rijndael','any version') };
+eval { $v .= pmver('Dancer','1.3113') };
+eval { $v .= pmver('Dancer::Cookie','any version') };
+eval { $v .= pmver('Dancer::Cookies','any version') };
+eval { $v .= pmver('Dancer::ModuleLoader','any version') };
+eval { $v .= pmver('Dancer::Session::Abstract','any version') };
+eval { $v .= pmver('Dancer::Test','any version') };
+eval { $v .= pmver('File::Spec','any version') };
+eval { $v .= pmver('File::Temp','any version') };
+eval { $v .= pmver('FindBin','any version') };
+eval { $v .= pmver('HTTP::Cookies','any version') };
+eval { $v .= pmver('HTTP::Date','any version') };
+eval { $v .= pmver('IO::Handle','any version') };
+eval { $v .= pmver('IPC::Open3','any version') };
+eval { $v .= pmver('LWP','any version') };
+eval { $v .= pmver('LWP::UserAgent','any version') };
+eval { $v .= pmver('MIME::Base64','any version') };
+eval { $v .= pmver('Module::Build','0.3601') };
+eval { $v .= pmver('Session::Storage::Secure','0.010') };
+eval { $v .= pmver('Storable','any version') };
+eval { $v .= pmver('String::CRC32','any version') };
+eval { $v .= pmver('Test::Exception','any version') };
+eval { $v .= pmver('Test::More','0.96') };
+eval { $v .= pmver('Test::NoWarnings','any version') };
+eval { $v .= pmver('Test::TCP','any version') };
+eval { $v .= pmver('Time::Duration::Parse','any version') };
+eval { $v .= pmver('base','any version') };
+eval { $v .= pmver('strict','any version') };
+eval { $v .= pmver('warnings','any version') };
+
+
+# All done.
+$v .= <<'EOT';
+
+Thanks for using my code. I hope it works for you.
+If not, please try and include this output in the bug report.
+That will help me reproduce the issue and solve your problem.
+
+EOT
+
+diag($v);
+ok(1, "we really didn't test anything, just reporting data");
+$success = 1;
+
+# Work around another nasty module on CPAN. :/
+no warnings 'once';
+$Template::Test::NO_FLUSH = 1;
+exit 0;
diff --git a/t/store-objects.t b/t/store-objects.t
new file mode 100644
index 0000000..41d1d0d
--- /dev/null
+++ b/t/store-objects.t
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+
+use Test::More tests => 1;
+
+{
+ use Dancer ':tests';
+
+ set session_cookie_key => 'chocolate chips';
+ set session => 'Cookie';
+
+ get '/' => sub {
+ session 'foo' => bless {}, 'SomeClass';
+
+ return 'ok';
+ }
+
+}
+
+use Dancer::Test;
+
+response_status_is '/' => 200, "session handles objects";
diff --git a/xt/author/critic.t b/xt/author/critic.t
deleted file mode 100644
index d5b4c96..0000000
--- a/xt/author/critic.t
+++ /dev/null
@@ -1,12 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More;
-use English qw(-no_match_vars);
-
-eval "use Test::Perl::Critic";
-plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
-Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
-all_critic_ok();
diff --git a/xt/author/pod-spell.t b/xt/author/pod-spell.t
deleted file mode 100644
index e68b874..0000000
--- a/xt/author/pod-spell.t
+++ /dev/null
@@ -1,36 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006000
-eval "use Test::Spelling 0.12; use Pod::Wordlist::hanekomu; 1" or die $@;
-
-
-add_stopwords(<DATA>);
-all_pod_files_spelling_ok( qw( bin lib ) );
-__DATA__
-AES
-Kirsopp
-cryptographically
-honoured
-https
-Alex
-Kapranoff
-kappa
-Sukria
-sukria
-David
-Golden
-dagolden
-Michael
-Schwern
-schwern
-Neil
-neil
-Nick
-Knutov
-nick
-lib
-Dancer
-Session
-Cookie
diff --git a/xt/release/distmeta.t b/xt/release/distmeta.t
deleted file mode 100644
index b46c7fc..0000000
--- a/xt/release/distmeta.t
+++ /dev/null
@@ -1,7 +0,0 @@
-#!perl
-
-use Test::More;
-
-eval "use Test::CPAN::Meta";
-plan skip_all => "Test::CPAN::Meta required for testing META.yml" if $@;
-meta_yaml_ok();
diff --git a/xt/release/minimum-version.t b/xt/release/minimum-version.t
deleted file mode 100644
index 708ba15..0000000
--- a/xt/release/minimum-version.t
+++ /dev/null
@@ -1,8 +0,0 @@
-#!perl
-
-use Test::More;
-
-eval "use Test::MinimumVersion";
-plan skip_all => "Test::MinimumVersion required for testing minimum versions"
- if $@;
-all_minimum_version_ok( qq{5.010} );
diff --git a/xt/release/pod-coverage.t b/xt/release/pod-coverage.t
deleted file mode 100644
index b52218b..0000000
--- a/xt/release/pod-coverage.t
+++ /dev/null
@@ -1,13 +0,0 @@
-#!perl
-
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
- if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
- if $@;
-
-all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff --git a/xt/release/pod-syntax.t b/xt/release/pod-syntax.t
deleted file mode 100644
index 8a22900..0000000
--- a/xt/release/pod-syntax.t
+++ /dev/null
@@ -1,7 +0,0 @@
-#!perl
-use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
-
-all_pod_files_ok();
diff --git a/xt/release/portability.t b/xt/release/portability.t
deleted file mode 100644
index 58dbc20..0000000
--- a/xt/release/portability.t
+++ /dev/null
@@ -1,12 +0,0 @@
-#!perl
-
-use strict;
-use warnings;
-
-use Test::More;
-
-eval 'use Test::Portability::Files';
-plan skip_all => 'Test::Portability::Files required for testing portability'
- if $@;
-options(test_one_dot => 0);
-run_tests();
diff --git a/xt/release/test-version.t b/xt/release/test-version.t
deleted file mode 100644
index b7a0f17..0000000
--- a/xt/release/test-version.t
+++ /dev/null
@@ -1,22 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-# generated by Dist::Zilla::Plugin::Test::Version 0.002004
-BEGIN { eval "use Test::Version; 1;" or die $@; }
-
-my @imports = ( 'version_all_ok' );
-
-my $params = {
- is_strict => 0,
- has_version => 1,
-};
-
-push @imports, $params
- if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
-
-
-Test::Version->import(@imports);
-
-version_all_ok;
-done_testing;
diff --git a/xt/release/unused-vars.t b/xt/release/unused-vars.t
new file mode 100644
index 0000000..e601076
--- /dev/null
+++ b/xt/release/unused-vars.t
@@ -0,0 +1,14 @@
+#!perl
+
+use Test::More 0.96 tests => 1;
+eval { require Test::Vars };
+
+SKIP: {
+ skip 1 => 'Test::Vars required for testing for unused vars'
+ if $@;
+ Test::Vars->import;
+
+ subtest 'unused vars' => sub {
+all_vars_ok();
+ };
+};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libdancer-session-cookie-perl.git
More information about the Pkg-perl-cvs-commits
mailing list