@@ -1,3 +1,6 @@
+0.19 2014-11-08
+ - Added support for the depends parameter. RT #98685. (Hans Staugaard)
+
0.18 2013-01-16
- Fix broken prereq specification in 0.17. Reported by Justin Hunter.
@@ -1,4 +1,3 @@
-
This is the Perl distribution MooseX-Params-Validate.
Installing MooseX-Params-Validate is straightforward.
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by Stevan Little <stevan.little@iinteractive.com>.
+This software is copyright (c) 2013 - 2014 by Stevan Little <stevan.little@iinteractive.com>.
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 Stevan Little <stevan.little@iinteractive.com>.
+This software is Copyright (c) 2013 - 2014 by Stevan Little <stevan.little@iinteractive.com>.
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 Stevan Little <stevan.little@iinteractive.com>.
+This software is Copyright (c) 2013 - 2014 by Stevan Little <stevan.little@iinteractive.com>.
This is free software, licensed under:
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.024.
Changes
INSTALL
LICENSE
@@ -5,9 +6,13 @@ MANIFEST
META.json
META.yml
Makefile.PL
-README
+README.md
+cpanfile
dist.ini
lib/MooseX/Params/Validate.pm
+t/00-compile.t
+t/00-report-prereqs.dd
+t/00-report-prereqs.t
t/000_load.t
t/001_basic.t
t/002_basic_list.t
@@ -21,10 +26,14 @@ t/009_wrapped.t
t/010_overloaded.t
t/011_allow_extra.t
t/012_ref_as_first_param.t
-t/release-eol.t
-t/release-no-tabs.t
+t/author-eol.t
+t/author-no-tabs.t
+t/author-pod-spell.t
+t/release-cpan-changes.t
t/release-pod-coverage.t
t/release-pod-linkcheck.t
t/release-pod-no404s.t
-t/release-pod-spell.t
t/release-pod-syntax.t
+t/release-portability.t
+t/release-synopsis.t
+weaver.ini
@@ -5,7 +5,7 @@
"Dave Rolsky <autarch@urth.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300028, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "Dist::Zilla version 5.024, CPAN::Meta::Converter version 2.142690",
"license" : [
"perl_5"
],
@@ -17,12 +17,20 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30"
+ "ExtUtils::MakeMaker" : "0"
}
},
"develop" : {
"requires" : {
- "Test::Pod" : "1.41"
+ "Pod::Coverage::TrustPod" : "0",
+ "Test::CPAN::Changes" : "0.19",
+ "Test::EOL" : "0",
+ "Test::More" : "0.88",
+ "Test::NoTabs" : "0",
+ "Test::Pod" : "1.41",
+ "Test::Pod::Coverage" : "1.08",
+ "Test::Spelling" : "0.12",
+ "Test::Synopsis" : "0"
}
},
"runtime" : {
@@ -39,27 +47,619 @@
}
},
"test" : {
+ "recommends" : {
+ "CPAN::Meta" : "2.120900"
+ },
"requires" : {
+ "ExtUtils::MakeMaker" : "0",
+ "File::Spec" : "0",
+ "IO::Handle" : "0",
+ "IPC::Open3" : "0",
"Moose::Role" : "0",
"Test::Fatal" : "0",
"Test::More" : "0.88",
- "overload" : "0"
+ "overload" : "0",
+ "perl" : "5.006"
}
}
},
+ "provides" : {
+ "MooseX::Params::Validate" : {
+ "file" : "lib/MooseX/Params/Validate.pm",
+ "version" : "0.19"
+ }
+ },
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "mailto" : "bug-datetime@rt.cpan.org",
- "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX::Params::Validate"
+ "mailto" : "bug-moosex-params-validate@rt.cpan.org",
+ "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Params-Validate"
},
+ "homepage" : "http://metacpan.org/release/MooseX-Params-Validate",
"repository" : {
"type" : "git",
- "url" : "git://git.moose.perl.org/MooseX-Params-Validate.git",
- "web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/MooseX-Params-Validate.git"
+ "url" : "git://github.com/moose/MooseX-Params-Validate.git",
+ "web" : "https://github.com/moose/MooseX-Params-Validate"
+ }
+ },
+ "version" : "0.19",
+ "x_Dist_Zilla" : {
+ "perl" : {
+ "version" : "5.016003"
+ },
+ "plugins" : [
+ {
+ "class" : "Dist::Zilla::Plugin::MakeMaker",
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 1
+ }
+ },
+ "name" : "@DROLSKY/MakeMaker",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Authority",
+ "name" : "@DROLSKY/Authority",
+ "version" : "1.009"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::AutoPrereqs",
+ "name" : "@DROLSKY/AutoPrereqs",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild",
+ "name" : "@DROLSKY/CopyFilesFromBuild",
+ "version" : "0.103510"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GatherDir",
+ "config" : {
+ "Dist::Zilla::Plugin::GatherDir" : {
+ "exclude_filename" : [
+ "README.md",
+ "cpanfile",
+ "LICENSE"
+ ],
+ "exclude_match" : [],
+ "follow_symlinks" : "0",
+ "include_dotfiles" : "0",
+ "prefix" : "",
+ "prune_directory" : [],
+ "root" : "."
+ }
+ },
+ "name" : "@DROLSKY/GatherDir",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GitHub::Meta",
+ "name" : "@DROLSKY/GitHub::Meta",
+ "version" : "0.38"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GitHub::Update",
+ "name" : "@DROLSKY/GitHub::Update",
+ "version" : "0.38"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaResources",
+ "name" : "@DROLSKY/MetaResources",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
+ "config" : {
+ "Dist::Zilla::Plugin::MetaProvides::Package" : {
+ "finder_objects" : [
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.024"
+ }
+ ]
+ },
+ "Dist::Zilla::Role::MetaProvider::Provider" : {
+ "inherit_missing" : "1",
+ "inherit_version" : "1",
+ "meta_noindex" : "1"
+ }
+ },
+ "name" : "@DROLSKY/MetaProvides::Package",
+ "version" : "2.001002"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::NextRelease",
+ "name" : "@DROLSKY/NextRelease",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PkgVersion",
+ "name" : "@DROLSKY/PkgVersion",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "test",
+ "type" : "requires"
+ }
+ },
+ "name" : "@DROLSKY/TestMoreDoneTesting",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PromptIfStale",
+ "config" : {
+ "Dist::Zilla::Plugin::PromptIfStale" : {
+ "check_all_plugins" : "1",
+ "check_all_prereqs" : "1",
+ "modules" : [],
+ "phase" : "release",
+ "skip" : [
+ "Dist::Zilla::Plugin::DROLSKY::Contributors",
+ "Dist::Zilla::Plugin::DROLSKY::License"
+ ]
+ }
+ },
+ "name" : "@DROLSKY/stale modules, release",
+ "version" : "0.029"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
+ "name" : "@DROLSKY/ReadmeMarkdownInBuild",
+ "version" : "0.142470"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
+ "name" : "@DROLSKY/ReadmeMarkdownInRoot",
+ "version" : "0.142470"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
+ "name" : "@DROLSKY/Test::Pod::Coverage::Configurable",
+ "version" : "0.02"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::PodSpelling",
+ "name" : "@DROLSKY/Test::PodSpelling",
+ "version" : "2.006008"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
+ "name" : "@DROLSKY/Test::ReportPrereqs",
+ "version" : "0.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PruneCruft",
+ "name" : "@DROLSKY/PruneCruft",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ManifestSkip",
+ "name" : "@DROLSKY/ManifestSkip",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaYAML",
+ "name" : "@DROLSKY/MetaYAML",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::License",
+ "name" : "@DROLSKY/License",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ExtraTests",
+ "name" : "@DROLSKY/ExtraTests",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ExecDir",
+ "name" : "@DROLSKY/ExecDir",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ShareDir",
+ "name" : "@DROLSKY/ShareDir",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Manifest",
+ "name" : "@DROLSKY/Manifest",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::TestRelease",
+ "name" : "@DROLSKY/TestRelease",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ConfirmRelease",
+ "name" : "@DROLSKY/ConfirmRelease",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::UploadToCPAN",
+ "name" : "@DROLSKY/UploadToCPAN",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
+ "name" : "@DROLSKY/CheckPrereqsIndexed",
+ "version" : "0.012"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CPANFile",
+ "name" : "@DROLSKY/CPANFile",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::DROLSKY::Contributors",
+ "name" : "@DROLSKY/DROLSKY::Contributors",
+ "version" : "0.24"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::DROLSKY::License",
+ "name" : "@DROLSKY/DROLSKY::License",
+ "version" : "0.24"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::CheckFor::CorrectBranch",
+ "version" : "0.011"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::CheckFor::MergeConflicts",
+ "version" : "0.011"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Contributors",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Contributors" : {
+ "include_authors" : "0",
+ "include_releaser" : "1",
+ "order_by" : "name",
+ "paths" : []
+ }
+ },
+ "name" : "@DROLSKY/Git::Contributors",
+ "version" : "0.008"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Describe",
+ "name" : "@DROLSKY/Git::Describe",
+ "version" : "0.003"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::InstallGuide",
+ "name" : "@DROLSKY/InstallGuide",
+ "version" : "1.200005"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Meta::Contributors",
+ "name" : "@DROLSKY/Meta::Contributors",
+ "version" : "0.001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaConfig",
+ "name" : "@DROLSKY/MetaConfig",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaJSON",
+ "name" : "@DROLSKY/MetaJSON",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::SurgicalPodWeaver",
+ "config" : {
+ "Dist::Zilla::Plugin::PodWeaver" : {
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles"
+ ],
+ "plugins" : [
+ {
+ "class" : "Pod::Weaver::Plugin::EnsurePod5",
+ "name" : "@CorePrep/EnsurePod5",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Plugin::H1Nester",
+ "name" : "@CorePrep/H1Nester",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Name",
+ "name" : "Name",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Version",
+ "name" : "Version",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "prelude",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "SYNOPSIS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Generic",
+ "name" : "DESCRIPTION",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Leftovers",
+ "name" : "Leftovers",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "postlude",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Authors",
+ "name" : "Authors",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Contributors",
+ "name" : "Contributors",
+ "version" : "0.008"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Legal",
+ "name" : "Legal",
+ "version" : "4.006"
+ }
+ ]
+ }
+ },
+ "name" : "@DROLSKY/SurgicalPodWeaver",
+ "version" : "0.0021"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
+ "name" : "@DROLSKY/PodSyntaxTests",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
+ "name" : "@DROLSKY/Test::CPAN::Changes",
+ "version" : "0.008"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Compile",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::Compile" : {
+ "bail_out_on_fail" : "0",
+ "fail_on_warning" : "author",
+ "fake_home" : "0",
+ "filename" : "t/00-compile.t",
+ "module_finder" : [
+ ":InstallModules"
+ ],
+ "needs_display" : "0",
+ "phase" : "test",
+ "script_finder" : [
+ ":ExecFiles"
+ ],
+ "skips" : []
+ }
+ },
+ "name" : "@DROLSKY/Test::Compile",
+ "version" : "2.051"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::EOL",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::EOL" : {
+ "filename" : "xt/author/eol.t"
+ }
+ },
+ "name" : "@DROLSKY/Test::EOL",
+ "version" : "0.15"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::NoTabs",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::NoTabs" : {
+ "filename" : "xt/author/no-tabs.t",
+ "finder" : [
+ ":InstallModules",
+ ":ExecFiles",
+ ":TestFiles"
+ ]
+ }
+ },
+ "name" : "@DROLSKY/Test::NoTabs",
+ "version" : "0.09"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Pod::LinkCheck",
+ "name" : "@DROLSKY/Test::Pod::LinkCheck",
+ "version" : "1.001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
+ "name" : "@DROLSKY/Test::Pod::No404s",
+ "version" : "1.001"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Portability",
+ "name" : "@DROLSKY/Test::Portability",
+ "version" : "2.000005"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Test::Synopsis",
+ "name" : "@DROLSKY/Test::Synopsis",
+ "version" : "2.000005"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Check",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Check" : {
+ "untracked_files" : "die"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "Changes",
+ "cpanfile",
+ "CONTRIBUTING.md",
+ "LICENSE",
+ "README.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Check",
+ "version" : "2.025"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Commit",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [],
+ "commit_msg" : "v%v%n%n%c",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "Changes",
+ "cpanfile",
+ "CONTRIBUTING.md",
+ "LICENSE",
+ "README.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Commit",
+ "version" : "2.025"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Tag",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Tag" : {
+ "branch" : null,
+ "signed" : 0,
+ "tag" : "v0.19",
+ "tag_format" : "v%v",
+ "tag_message" : "v%v",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Tag",
+ "version" : "2.025"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Push",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Push" : {
+ "push_to" : [
+ "origin"
+ ],
+ "remotes_must_exist" : 1
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Push",
+ "version" : "2.025"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":InstallModules",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":IncModules",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":TestFiles",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":ExecFiles",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":ShareFiles",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":MainModule",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.024"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.024"
+ }
+ ],
+ "zilla" : {
+ "class" : "Dist::Zilla::Dist::Builder",
+ "config" : {
+ "is_trial" : "0"
+ },
+ "version" : "5.024"
}
},
- "version" : "0.18",
- "x_authority" : "cpan:STEVAN"
+ "x_authority" : "cpan:DROLSKY",
+ "x_contributors" : [
+ "Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>",
+ "Hans Staugaard <h.staugaard@tweakker.com>",
+ "Karen Etheridge <ether@cpan.org>"
+ ]
}
@@ -4,31 +4,485 @@ author:
- 'Stevan Little <stevan.little@iinteractive.com>'
- 'Dave Rolsky <autarch@urth.org>'
build_requires:
- Moose::Role: 0
- Test::Fatal: 0
- Test::More: 0.88
- overload: 0
+ ExtUtils::MakeMaker: '0'
+ File::Spec: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
+ Moose::Role: '0'
+ Test::Fatal: '0'
+ Test::More: '0.88'
+ overload: '0'
+ perl: '5.006'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300028, CPAN::Meta::Converter version 2.120921'
+generated_by: 'Dist::Zilla version 5.024, CPAN::Meta::Converter version 2.142690'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: MooseX-Params-Validate
+provides:
+ MooseX::Params::Validate:
+ file: lib/MooseX/Params/Validate.pm
+ version: '0.19'
requires:
- Carp: 0
- Devel::Caller: 0
- Moose: 0.58
- Moose::Util::TypeConstraints: 0
- Params::Validate: 0.88
- Scalar::Util: 0
- Sub::Exporter: 0
- strict: 0
- warnings: 0
+ Carp: '0'
+ Devel::Caller: '0'
+ Moose: '0.58'
+ Moose::Util::TypeConstraints: '0'
+ Params::Validate: '0.88'
+ Scalar::Util: '0'
+ Sub::Exporter: '0'
+ strict: '0'
+ warnings: '0'
resources:
- bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX::Params::Validate
- repository: git://git.moose.perl.org/MooseX-Params-Validate.git
-version: 0.18
-x_authority: cpan:STEVAN
+ bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Params-Validate
+ homepage: http://metacpan.org/release/MooseX-Params-Validate
+ repository: git://github.com/moose/MooseX-Params-Validate.git
+version: '0.19'
+x_Dist_Zilla:
+ perl:
+ version: '5.016003'
+ plugins:
+ -
+ class: Dist::Zilla::Plugin::MakeMaker
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 1
+ name: '@DROLSKY/MakeMaker'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::Authority
+ name: '@DROLSKY/Authority'
+ version: '1.009'
+ -
+ class: Dist::Zilla::Plugin::AutoPrereqs
+ name: '@DROLSKY/AutoPrereqs'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::CopyFilesFromBuild
+ name: '@DROLSKY/CopyFilesFromBuild'
+ version: '0.103510'
+ -
+ class: Dist::Zilla::Plugin::GatherDir
+ config:
+ Dist::Zilla::Plugin::GatherDir:
+ exclude_filename:
+ - README.md
+ - cpanfile
+ - LICENSE
+ exclude_match: []
+ follow_symlinks: '0'
+ include_dotfiles: '0'
+ prefix: ''
+ prune_directory: []
+ root: .
+ name: '@DROLSKY/GatherDir'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::GitHub::Meta
+ name: '@DROLSKY/GitHub::Meta'
+ version: '0.38'
+ -
+ class: Dist::Zilla::Plugin::GitHub::Update
+ name: '@DROLSKY/GitHub::Update'
+ version: '0.38'
+ -
+ class: Dist::Zilla::Plugin::MetaResources
+ name: '@DROLSKY/MetaResources'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::MetaProvides::Package
+ config:
+ Dist::Zilla::Plugin::MetaProvides::Package:
+ finder_objects:
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.024'
+ Dist::Zilla::Role::MetaProvider::Provider:
+ inherit_missing: '1'
+ inherit_version: '1'
+ meta_noindex: '1'
+ name: '@DROLSKY/MetaProvides::Package'
+ version: '2.001002'
+ -
+ class: Dist::Zilla::Plugin::NextRelease
+ name: '@DROLSKY/NextRelease'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::PkgVersion
+ name: '@DROLSKY/PkgVersion'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: test
+ type: requires
+ name: '@DROLSKY/TestMoreDoneTesting'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::PromptIfStale
+ config:
+ Dist::Zilla::Plugin::PromptIfStale:
+ check_all_plugins: '1'
+ check_all_prereqs: '1'
+ modules: []
+ phase: release
+ skip:
+ - Dist::Zilla::Plugin::DROLSKY::Contributors
+ - Dist::Zilla::Plugin::DROLSKY::License
+ name: '@DROLSKY/stale modules, release'
+ version: '0.029'
+ -
+ class: Dist::Zilla::Plugin::ReadmeAnyFromPod
+ name: '@DROLSKY/ReadmeMarkdownInBuild'
+ version: '0.142470'
+ -
+ class: Dist::Zilla::Plugin::ReadmeAnyFromPod
+ name: '@DROLSKY/ReadmeMarkdownInRoot'
+ version: '0.142470'
+ -
+ class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
+ name: '@DROLSKY/Test::Pod::Coverage::Configurable'
+ version: '0.02'
+ -
+ class: Dist::Zilla::Plugin::Test::PodSpelling
+ name: '@DROLSKY/Test::PodSpelling'
+ version: '2.006008'
+ -
+ class: Dist::Zilla::Plugin::Test::ReportPrereqs
+ name: '@DROLSKY/Test::ReportPrereqs'
+ version: '0.019'
+ -
+ class: Dist::Zilla::Plugin::PruneCruft
+ name: '@DROLSKY/PruneCruft'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::ManifestSkip
+ name: '@DROLSKY/ManifestSkip'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::MetaYAML
+ name: '@DROLSKY/MetaYAML'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::License
+ name: '@DROLSKY/License'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::ExtraTests
+ name: '@DROLSKY/ExtraTests'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::ExecDir
+ name: '@DROLSKY/ExecDir'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::ShareDir
+ name: '@DROLSKY/ShareDir'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::Manifest
+ name: '@DROLSKY/Manifest'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::TestRelease
+ name: '@DROLSKY/TestRelease'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::ConfirmRelease
+ name: '@DROLSKY/ConfirmRelease'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::UploadToCPAN
+ name: '@DROLSKY/UploadToCPAN'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::CheckPrereqsIndexed
+ name: '@DROLSKY/CheckPrereqsIndexed'
+ version: '0.012'
+ -
+ class: Dist::Zilla::Plugin::CPANFile
+ name: '@DROLSKY/CPANFile'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::DROLSKY::Contributors
+ name: '@DROLSKY/DROLSKY::Contributors'
+ version: '0.24'
+ -
+ class: Dist::Zilla::Plugin::DROLSKY::License
+ name: '@DROLSKY/DROLSKY::License'
+ version: '0.24'
+ -
+ class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::CheckFor::CorrectBranch'
+ version: '0.011'
+ -
+ class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::CheckFor::MergeConflicts'
+ version: '0.011'
+ -
+ class: Dist::Zilla::Plugin::Git::Contributors
+ config:
+ Dist::Zilla::Plugin::Git::Contributors:
+ include_authors: '0'
+ include_releaser: '1'
+ order_by: name
+ paths: []
+ name: '@DROLSKY/Git::Contributors'
+ version: '0.008'
+ -
+ class: Dist::Zilla::Plugin::Git::Describe
+ name: '@DROLSKY/Git::Describe'
+ version: '0.003'
+ -
+ class: Dist::Zilla::Plugin::InstallGuide
+ name: '@DROLSKY/InstallGuide'
+ version: '1.200005'
+ -
+ class: Dist::Zilla::Plugin::Meta::Contributors
+ name: '@DROLSKY/Meta::Contributors'
+ version: '0.001'
+ -
+ class: Dist::Zilla::Plugin::MetaConfig
+ name: '@DROLSKY/MetaConfig'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::MetaJSON
+ name: '@DROLSKY/MetaJSON'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::SurgicalPodWeaver
+ config:
+ Dist::Zilla::Plugin::PodWeaver:
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ plugins:
+ -
+ class: Pod::Weaver::Plugin::EnsurePod5
+ name: '@CorePrep/EnsurePod5'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Plugin::H1Nester
+ name: '@CorePrep/H1Nester'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Name
+ name: Name
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Version
+ name: Version
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: prelude
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: SYNOPSIS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Generic
+ name: DESCRIPTION
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Leftovers
+ name: Leftovers
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: postlude
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Authors
+ name: Authors
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Contributors
+ name: Contributors
+ version: '0.008'
+ -
+ class: Pod::Weaver::Section::Legal
+ name: Legal
+ version: '4.006'
+ name: '@DROLSKY/SurgicalPodWeaver'
+ version: '0.0021'
+ -
+ class: Dist::Zilla::Plugin::PodSyntaxTests
+ name: '@DROLSKY/PodSyntaxTests'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::Test::CPAN::Changes
+ name: '@DROLSKY/Test::CPAN::Changes'
+ version: '0.008'
+ -
+ class: Dist::Zilla::Plugin::Test::Compile
+ config:
+ Dist::Zilla::Plugin::Test::Compile:
+ bail_out_on_fail: '0'
+ fail_on_warning: author
+ fake_home: '0'
+ filename: t/00-compile.t
+ module_finder:
+ - ':InstallModules'
+ needs_display: '0'
+ phase: test
+ script_finder:
+ - ':ExecFiles'
+ skips: []
+ name: '@DROLSKY/Test::Compile'
+ version: '2.051'
+ -
+ class: Dist::Zilla::Plugin::Test::EOL
+ config:
+ Dist::Zilla::Plugin::Test::EOL:
+ filename: xt/author/eol.t
+ name: '@DROLSKY/Test::EOL'
+ version: '0.15'
+ -
+ class: Dist::Zilla::Plugin::Test::NoTabs
+ config:
+ Dist::Zilla::Plugin::Test::NoTabs:
+ filename: xt/author/no-tabs.t
+ finder:
+ - ':InstallModules'
+ - ':ExecFiles'
+ - ':TestFiles'
+ name: '@DROLSKY/Test::NoTabs'
+ version: '0.09'
+ -
+ class: Dist::Zilla::Plugin::Test::Pod::LinkCheck
+ name: '@DROLSKY/Test::Pod::LinkCheck'
+ version: '1.001'
+ -
+ class: Dist::Zilla::Plugin::Test::Pod::No404s
+ name: '@DROLSKY/Test::Pod::No404s'
+ version: '1.001'
+ -
+ class: Dist::Zilla::Plugin::Test::Portability
+ name: '@DROLSKY/Test::Portability'
+ version: '2.000005'
+ -
+ class: Dist::Zilla::Plugin::Test::Synopsis
+ name: '@DROLSKY/Test::Synopsis'
+ version: '2.000005'
+ -
+ class: Dist::Zilla::Plugin::Git::Check
+ config:
+ Dist::Zilla::Plugin::Git::Check:
+ untracked_files: die
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - Changes
+ - cpanfile
+ - CONTRIBUTING.md
+ - LICENSE
+ - README.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Check'
+ version: '2.025'
+ -
+ class: Dist::Zilla::Plugin::Git::Commit
+ config:
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in: []
+ commit_msg: v%v%n%n%c
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - Changes
+ - cpanfile
+ - CONTRIBUTING.md
+ - LICENSE
+ - README.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Commit'
+ version: '2.025'
+ -
+ class: Dist::Zilla::Plugin::Git::Tag
+ config:
+ Dist::Zilla::Plugin::Git::Tag:
+ branch: ~
+ signed: 0
+ tag: v0.19
+ tag_format: v%v
+ tag_message: v%v
+ time_zone: local
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Tag'
+ version: '2.025'
+ -
+ class: Dist::Zilla::Plugin::Git::Push
+ config:
+ Dist::Zilla::Plugin::Git::Push:
+ push_to:
+ - origin
+ remotes_must_exist: 1
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Push'
+ version: '2.025'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':InstallModules'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':IncModules'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':TestFiles'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':ExecFiles'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':ShareFiles'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':MainModule'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.024'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DROLSKY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.024'
+ zilla:
+ class: Dist::Zilla::Dist::Builder
+ config:
+ is_trial: '0'
+ version: '5.024'
+x_authority: cpan:DROLSKY
+x_contributors:
+ - 'Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>'
+ - 'Hans Staugaard <h.staugaard@tweakker.com>'
+ - 'Karen Etheridge <ether@cpan.org>'
@@ -1,28 +1,24 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.024.
use strict;
use warnings;
+use 5.006;
-
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "an extension of Params::Validate using Moose's types",
"AUTHOR" => "Stevan Little <stevan.little\@iinteractive.com>, Dave Rolsky <autarch\@urth.org>",
- "BUILD_REQUIRES" => {
- "Moose::Role" => 0,
- "Test::Fatal" => 0,
- "Test::More" => "0.88",
- "overload" => 0
- },
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30"
+ "ExtUtils::MakeMaker" => 0
},
"DISTNAME" => "MooseX-Params-Validate",
"EXE_FILES" => [],
"LICENSE" => "perl",
+ "MIN_PERL_VERSION" => "5.006",
"NAME" => "MooseX::Params::Validate",
"PREREQ_PM" => {
"Carp" => 0,
@@ -35,24 +31,48 @@ my %WriteMakefileArgs = (
"strict" => 0,
"warnings" => 0
},
- "VERSION" => "0.18",
+ "TEST_REQUIRES" => {
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Moose::Role" => 0,
+ "Test::Fatal" => 0,
+ "Test::More" => "0.88",
+ "overload" => 0
+ },
+ "VERSION" => "0.19",
"test" => {
"TESTS" => "t/*.t"
}
);
-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};
- }
- }
+my %FallbackPrereqs = (
+ "Carp" => 0,
+ "Devel::Caller" => 0,
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Moose" => "0.58",
+ "Moose::Role" => 0,
+ "Moose::Util::TypeConstraints" => 0,
+ "Params::Validate" => "0.88",
+ "Scalar::Util" => 0,
+ "Sub::Exporter" => 0,
+ "Test::Fatal" => 0,
+ "Test::More" => "0.88",
+ "overload" => 0,
+ "strict" => 0,
+ "warnings" => 0
+);
+
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
@@ -1,13 +0,0 @@
-
-
-This archive contains the distribution MooseX-Params-Validate,
-version 0.18:
-
- an extension of Params::Validate using Moose's types
-
-This software is copyright (c) 2013 by Stevan Little <stevan.little@iinteractive.com>.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-
@@ -0,0 +1,249 @@
+# NAME
+
+MooseX::Params::Validate - an extension of Params::Validate using Moose's types
+
+# VERSION
+
+version 0.19
+
+# SYNOPSIS
+
+ package Foo;
+ use Moose;
+ use MooseX::Params::Validate;
+
+ sub foo {
+ my ( $self, %params ) = validated_hash(
+ \@_,
+ bar => { isa => 'Str', default => 'Moose' },
+ );
+ return "Hooray for $params{bar}!";
+ }
+
+ sub bar {
+ my $self = shift;
+ my ( $foo, $baz, $gorch ) = validated_list(
+ \@_,
+ foo => { isa => 'Foo' },
+ baz => { isa => 'ArrayRef | HashRef', optional => 1 },
+ gorch => { isa => 'ArrayRef[Int]', optional => 1 }
+ );
+ [ $foo, $baz, $gorch ];
+ }
+
+# DESCRIPTION
+
+This module fills a gap in Moose by adding method parameter validation
+to Moose. This is just one of many developing options, it should not
+be considered the "official" one by any means though.
+
+You might also want to explore `MooseX::Method::Signatures` and
+`MooseX::Declare`.
+
+# CAVEATS
+
+It is not possible to introspect the method parameter specs; they are
+created as needed when the method is called and cached for subsequent
+calls.
+
+# EXPORTS
+
+- **validated\_hash( \\@\_, %parameter\_spec )**
+
+ This behaves similarly to the standard Params::Validate `validate`
+ function and returns the captured values in a HASH. The one exception
+ is where if it spots an instance in the `@_`, then it will handle
+ it appropriately (unlike Params::Validate which forces you to shift
+ you `$self` first).
+
+ The values in `@_` can either be a set of name-value pairs or a single hash
+ reference.
+
+ The `%parameter_spec` accepts the following options:
+
+ - _isa_
+
+ The `isa` option can be either; class name, Moose type constraint
+ name or an anon Moose type constraint.
+
+ - _does_
+
+ The `does` option can be either; role name or an anon Moose type
+ constraint.
+
+ - _default_
+
+ This is the default value to be used if the value is not supplied.
+
+ - _optional_
+
+ As with Params::Validate, all options are considered required unless
+ otherwise specified. This option is passed directly to
+ Params::Validate.
+
+ - _coerce_
+
+ If this is true and the parameter has a type constraint which has
+ coercions, then the coercion will be called for this parameter. If the
+ type does have coercions, then this parameter is ignored.
+
+ - _depends_
+
+ Another parameter that this one depends on. See the [Params::Validate](https://metacpan.org/pod/Params::Validate)
+ documentation for more details.
+
+ This function is also available under its old name, `validate`.
+
+- **validated\_list( \\@\_, %parameter\_spec )**
+
+ The `%parameter_spec` accepts the same options as above, but returns
+ the parameters as positional values instead of a HASH. This is best
+ explained by example:
+
+ sub foo {
+ my ( $self, $foo, $bar ) = validated_list(
+ \@_,
+ foo => { isa => 'Foo' },
+ bar => { isa => 'Bar' },
+ );
+ $foo->baz($bar);
+ }
+
+ We capture the order in which you defined the parameters and then
+ return them as a list in the same order. If a param is marked optional
+ and not included, then it will be set to `undef`.
+
+ The values in `@_` can either be a set of name-value pairs or a single hash
+ reference.
+
+ Like `validated_hash`, if it spots an object instance as the first
+ parameter of `@_`, it will handle it appropriately, returning it as
+ the first argument.
+
+ This function is also available under its old name, `validatep`.
+
+- **pos\_validated\_list( \\@\_, $spec, $spec, ... )**
+
+ This function validates a list of positional parameters. Each `$spec`
+ should validate one of the parameters in the list:
+
+ sub foo {
+ my $self = shift;
+ my ( $foo, $bar ) = pos_validated_list(
+ \@_,
+ { isa => 'Foo' },
+ { isa => 'Bar' },
+ );
+
+ ...
+ }
+
+ Unlike the other functions, this function _cannot_ find `$self` in
+ the argument list. Make sure to shift it off yourself before doing
+ validation.
+
+ The values in `@_` must be a list of values. You cannot pass the values as an
+ array reference, because this cannot be distinguished from passing one value
+ which is itself an array reference.
+
+ If a parameter is marked as optional and is not present, it will
+ simply not be returned.
+
+ If you want to pass in any of the cache control parameters described
+ below, simply pass them after the list of parameter validation specs:
+
+ sub foo {
+ my $self = shift;
+ my ( $foo, $bar ) = pos_validated_list(
+ \@_,
+ { isa => 'Foo' },
+ { isa => 'Bar' },
+ MX_PARAMS_VALIDATE_NO_CACHE => 1,
+ );
+
+ ...
+ }
+
+# ALLOWING EXTRA PARAMETERS
+
+By default, any parameters not mentioned in the parameter spec cause this
+module to throw an error. However, you can have this module simply ignore them
+by setting `MX_PARAMS_VALIDATE_ALLOW_EXTRA` to a true value when calling a
+validation subroutine.
+
+When calling `validated_hash` or `pos_validated_list` the extra parameters
+are simply returned in the hash or list as appropriate. However, when you call
+`validated_list` the extra parameters will not be returned at all. You can
+get them by looking at the original value of `@_`.
+
+# EXPORTS
+
+By default, this module exports the `validated_hash`,
+`validated_list`, and `pos_validated_list`.
+
+If you would prefer to import the now deprecated functions `validate`
+and `validatep` instead, you can use the `:deprecated` tag to import
+them.
+
+# IMPORTANT NOTE ON CACHING
+
+When a validation subroutine is called the first time, the parameter spec is
+prepared and cached to avoid unnecessary regeneration. It uses the fully
+qualified name of the subroutine (package + subname) as the cache key. In
+99.999% of the use cases for this module, that will be the right thing to do.
+
+However, I have (ab)used this module occasionally to handle dynamic
+sets of parameters. In this special use case you can do a couple
+things to better control the caching behavior.
+
+- Passing in the `MX_PARAMS_VALIDATE_NO_CACHE` flag in the parameter
+spec this will prevent the parameter spec from being cached.
+
+ sub foo {
+ my ( $self, %params ) = validated_hash(
+ \@_,
+ foo => { isa => 'Foo' },
+ MX_PARAMS_VALIDATE_NO_CACHE => 1,
+ );
+
+ }
+
+- Passing in `MX_PARAMS_VALIDATE_CACHE_KEY` with a value to be used as
+the cache key will bypass the normal cache key generation.
+
+ sub foo {
+ my ( $self, %params ) = validated_hash(
+ \@_,
+ foo => { isa => 'Foo' },
+ MX_PARAMS_VALIDATE_CACHE_KEY => 'foo-42',
+ );
+
+ }
+
+# MAINTAINER
+
+Dave Rolsky <autarch@urth.org>
+
+# BUGS
+
+Please submit bugs to the CPAN RT system at
+http://rt.cpan.org/NoAuth/ReportBug.html?Queue=moosex-params-validate or via
+email at bug-moosex-params-validate@rt.cpan.org.
+
+# AUTHORS
+
+- Stevan Little <stevan.little@iinteractive.com>
+- Dave Rolsky <autarch@urth.org>
+
+# CONTRIBUTORS
+
+- Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
+- Hans Staugaard <h.staugaard@tweakker.com>
+- Karen Etheridge <ether@cpan.org>
+
+# COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2013 - 2014 by Stevan Little <stevan.little@iinteractive.com>.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
@@ -0,0 +1,41 @@
+requires "Carp" => "0";
+requires "Devel::Caller" => "0";
+requires "Moose" => "0.58";
+requires "Moose::Util::TypeConstraints" => "0";
+requires "Params::Validate" => "0.88";
+requires "Scalar::Util" => "0";
+requires "Sub::Exporter" => "0";
+requires "strict" => "0";
+requires "warnings" => "0";
+
+on 'test' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+ requires "File::Spec" => "0";
+ requires "IO::Handle" => "0";
+ requires "IPC::Open3" => "0";
+ requires "Moose::Role" => "0";
+ requires "Test::Fatal" => "0";
+ requires "Test::More" => "0.88";
+ requires "overload" => "0";
+ requires "perl" => "5.006";
+};
+
+on 'test' => sub {
+ recommends "CPAN::Meta" => "2.120900";
+};
+
+on 'configure' => sub {
+ requires "ExtUtils::MakeMaker" => "0";
+};
+
+on 'develop' => sub {
+ requires "Pod::Coverage::TrustPod" => "0";
+ requires "Test::CPAN::Changes" => "0.19";
+ requires "Test::EOL" => "0";
+ requires "Test::More" => "0.88";
+ requires "Test::NoTabs" => "0";
+ requires "Test::Pod" => "1.41";
+ requires "Test::Pod::Coverage" => "1.08";
+ requires "Test::Spelling" => "0.12";
+ requires "Test::Synopsis" => "0";
+};
@@ -5,39 +5,17 @@ license = Perl_5
copyright_holder = Stevan Little <stevan.little@iinteractive.com>
copyright_year = 2013
-version = 0.18
-
-[Authority]
-authority = cpan:STEVAN
-
-[NextRelease]
-format = %-4v %{yyyy-MM-dd}d
-
-[@Basic]
-
-[InstallGuide]
-[MetaJSON]
-
-[MetaResources]
-bugtracker.web = http://rt.cpan.org/NoAuth/Bugs.html?Dist=MooseX::Params::Validate
-bugtracker.mailto = bug-datetime@rt.cpan.org
-repository.url = git://git.moose.perl.org/MooseX-Params-Validate.git
-repository.web = http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/MooseX-Params-Validate.git
-repository.type = git
-
-[SurgicalPodWeaver]
-
-[PkgVersion]
-
-[EOLTests]
-[NoTabsTests]
-[PodSyntaxTests]
-[Test::Pod::LinkCheck]
-[Test::Pod::No404s]
-
-[AutoPrereqs]
-skip = ^Roles::Blah$
-
-[CheckPrereqsIndexed]
-
-[@Git]
+version = 0.19
+
+[@DROLSKY]
+dist = MooseX-Params-Validate
+next_release_width = 4
+pod_coverage_trustme = MooseX::Params::Validate => qr/^(?:validatep?|import)$/
+prereqs_skip = ^Roles::Blah$
+stopwords = Rolsky
+stopwords = Stevan
+stopwords = coercions
+stopwords = cpan
+stopwords = isa
+stopwords = param
+stopwords = subname
@@ -1,11 +1,7 @@
package MooseX::Params::Validate;
-{
- $MooseX::Params::Validate::VERSION = '0.18';
-}
-BEGIN {
- $MooseX::Params::Validate::AUTHORITY = 'cpan:STEVAN';
-}
+# git description: v0.18-5-g3bcb95b
+$MooseX::Params::Validate::VERSION = '0.19';
use strict;
use warnings;
@@ -201,6 +197,9 @@ sub _convert_to_param_validate_spec {
$pv_spec{coerce} = $spec->{coerce}
if exists $spec->{coerce};
+ $pv_spec{depends} = $spec->{depends}
+ if exists $spec->{depends};
+
my $constraint;
if ( defined $spec->{isa} ) {
$constraint
@@ -262,7 +261,7 @@ MooseX::Params::Validate - an extension of Params::Validate using Moose's types
=head1 VERSION
-version 0.18
+version 0.19
=head1 SYNOPSIS
@@ -298,6 +297,8 @@ be considered the "official" one by any means though.
You might also want to explore C<MooseX::Method::Signatures> and
C<MooseX::Declare>.
+=encoding UTF-8
+
=head1 CAVEATS
It is not possible to introspect the method parameter specs; they are
@@ -349,6 +350,11 @@ If this is true and the parameter has a type constraint which has
coercions, then the coercion will be called for this parameter. If the
type does have coercions, then this parameter is ignored.
+=item I<depends>
+
+Another parameter that this one depends on. See the L<Params::Validate>
+documentation for more details.
+
=back
This function is also available under its old name, C<validate>.
@@ -428,9 +434,9 @@ below, simply pass them after the list of parameter validation specs:
=head1 ALLOWING EXTRA PARAMETERS
By default, any parameters not mentioned in the parameter spec cause this
-module to throw an error. However, you can have have this module simply ignore
-them by setting C<MX_PARAMS_VALIDATE_ALLOW_EXTRA> to a true value when calling
-a validation subroutine.
+module to throw an error. However, you can have this module simply ignore them
+by setting C<MX_PARAMS_VALIDATE_ALLOW_EXTRA> to a true value when calling a
+validation subroutine.
When calling C<validated_hash> or C<pos_validated_list> the extra parameters
are simply returned in the hash or list as appropriate. However, when you call
@@ -513,9 +519,29 @@ Dave Rolsky <autarch@urth.org>
=back
+=head1 CONTRIBUTORS
+
+=for stopwords Dagfinn Ilmari Mannsåker Hans Staugaard Karen Etheridge
+
+=over 4
+
+=item *
+
+Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
+
+=item *
+
+Hans Staugaard <h.staugaard@tweakker.com>
+
+=item *
+
+Karen Etheridge <ether@cpan.org>
+
+=back
+
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by Stevan Little <stevan.little@iinteractive.com>.
+This software is copyright (c) 2013 - 2014 by Stevan Little <stevan.little@iinteractive.com>.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -0,0 +1,51 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.051
+
+use Test::More;
+
+plan tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+my @module_files = (
+ 'MooseX/Params/Validate.pm'
+);
+
+
+
+# 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)
+{
+ # 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')
+ or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) ) if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,51 @@
+do { my $x = {
+ 'configure' => {
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0'
+ }
+ },
+ 'develop' => {
+ 'requires' => {
+ 'Pod::Coverage::TrustPod' => '0',
+ 'Test::CPAN::Changes' => '0.19',
+ 'Test::EOL' => '0',
+ 'Test::More' => '0.88',
+ 'Test::NoTabs' => '0',
+ 'Test::Pod' => '1.41',
+ 'Test::Pod::Coverage' => '1.08',
+ 'Test::Spelling' => '0.12',
+ 'Test::Synopsis' => '0'
+ }
+ },
+ 'runtime' => {
+ 'requires' => {
+ 'Carp' => '0',
+ 'Devel::Caller' => '0',
+ 'Moose' => '0.58',
+ 'Moose::Util::TypeConstraints' => '0',
+ 'Params::Validate' => '0.88',
+ 'Scalar::Util' => '0',
+ 'Sub::Exporter' => '0',
+ 'strict' => '0',
+ 'warnings' => '0'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '2.120900'
+ },
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0',
+ 'File::Spec' => '0',
+ 'IO::Handle' => '0',
+ 'IPC::Open3' => '0',
+ 'Moose::Role' => '0',
+ 'Test::Fatal' => '0',
+ 'Test::More' => '0.88',
+ 'overload' => '0',
+ 'perl' => '5.006'
+ }
+ }
+ };
+ $x;
+ }
\ No newline at end of file
@@ -0,0 +1,176 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+ qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+ |
+ (?:\.[0-9]+) (?:_[0-9]+)?
+ ) | (?:
+ v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+ |
+ (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+ )
+ )/x;
+
+# hide optional CPAN::Meta modules from prereq scanner
+# and check if they are available
+my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _max {
+ my $max = shift;
+ $max = ( $_ > $max ) ? $_ : $max for @_;
+ return $max;
+}
+
+sub _merge_prereqs {
+ my ($collector, $prereqs) = @_;
+
+ # CPAN::Meta::Prereqs object
+ if (ref $collector eq $cpan_meta_pre) {
+ return $collector->with_merged_prereqs(
+ CPAN::Meta::Prereqs->new( $prereqs )
+ );
+ }
+
+ # Raw hashrefs
+ for my $phase ( keys %$prereqs ) {
+ for my $type ( keys %{ $prereqs->{$phase} } ) {
+ for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+ $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+ }
+ }
+ }
+
+ return $collector;
+}
+
+my @include = qw(
+
+);
+
+my @exclude = qw(
+
+);
+
+# Add static prereqs to the included modules list
+my $static_prereqs = do 't/00-report-prereqs.dd';
+
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+ ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+ $static_prereqs
+);
+
+# Add dynamic prereqs to the included modules list (if we can)
+my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
+if ( $source && $HAS_CPAN_META ) {
+ if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+ $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
+ }
+}
+else {
+ $source = 'static metadata';
+}
+
+my @full_reports;
+my @dep_errors;
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+ $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+ next unless $req_hash->{$phase};
+ next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+ for my $type ( qw(requires recommends suggests conflicts modules) ) {
+ next unless $req_hash->{$phase}{$type};
+
+ my $title = ucfirst($phase).' '.ucfirst($type);
+ my @reports = [qw/Module Want Have/];
+
+ for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+ next if $mod eq 'perl';
+ next if grep { $_ eq $mod } @exclude;
+
+ my $file = $mod;
+ $file =~ s{::}{/}g;
+ $file .= ".pm";
+ my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+ my $want = $req_hash->{$phase}{$type}{$mod};
+ $want = "undef" unless defined $want;
+ $want = "any" if !$want && $want == 0;
+
+ my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+ if ($prefix) {
+ my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+ $have = "undef" unless defined $have;
+ push @reports, [$mod, $want, $have];
+
+ if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+ if ( $have !~ /\A$lax_version_re\z/ ) {
+ push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+ }
+ elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+ push @dep_errors, "$mod version '$have' is not in required range '$want'";
+ }
+ }
+ }
+ else {
+ push @reports, [$mod, $want, "missing"];
+
+ if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+ push @dep_errors, "$mod is not installed ($req_string)";
+ }
+ }
+ }
+
+ if ( @reports ) {
+ push @full_reports, "=== $title ===\n\n";
+
+ my $ml = _max( map { length $_->[0] } @reports );
+ my $wl = _max( map { length $_->[1] } @reports );
+ my $hl = _max( map { length $_->[2] } @reports );
+ splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+
+ push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+ push @full_reports, "\n";
+ }
+ }
+}
+
+if ( @full_reports ) {
+ diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
+}
+
+if ( @dep_errors ) {
+ diag join("\n",
+ "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+ "The following REQUIRED prerequisites were not satisfied:\n",
+ @dep_errors,
+ "\n"
+ );
+}
+
+pass;
+
+# vim: ts=4 sts=4 sw=4 et:
@@ -72,6 +72,24 @@ use Test::Fatal;
return $params{foo};
}
+
+ sub boo {
+ my $self = shift;
+ my %params = validated_hash(
+ \@_,
+ foo => {
+ isa => 'Str',
+ optional => 1,
+ depends => ['bar']
+ },
+ bar => {
+ isa => 'Str',
+ optional => 1,
+ depends => ['foo']
+ },
+ );
+ return 'foobar';
+ }
}
my $foo = Foo->new;
@@ -230,4 +248,18 @@ like(
'... foo parameter additional callback requires that arrayref be 0-2 elements'
);
+is( $foo->boo, 'foobar', '... boo dependent parameters optional' );
+
+like (
+ exception {$foo->boo(foo => 'foo')},
+ qr/\QParameter 'foo' depends on parameter 'bar'/,
+ '... boo parameter foo depends on bar parameter',
+);
+
+like (
+ exception {$foo->boo(bar => 'bar')},
+ qr/\QParameter 'bar' depends on parameter 'foo'/,
+ '... boo parameter bar depends on foo parameter',
+);
+
done_testing();
@@ -0,0 +1,16 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::EOL 0.15
+use Test::EOL;
+
+all_perl_files_ok({ trailing_whitespace => 1 });
@@ -0,0 +1,48 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.09
+
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+ 'lib/MooseX/Params/Validate.pm',
+ 't/00-compile.t',
+ 't/00-report-prereqs.dd',
+ 't/00-report-prereqs.t',
+ 't/000_load.t',
+ 't/001_basic.t',
+ 't/002_basic_list.t',
+ 't/003_nocache_flag.t',
+ 't/004_custom_cache_key.t',
+ 't/005_coercion.t',
+ 't/006_not_moose.t',
+ 't/007_deprecated.t',
+ 't/008_positional.t',
+ 't/009_wrapped.t',
+ 't/010_overloaded.t',
+ 't/011_allow_extra.t',
+ 't/012_ref_as_first_param.t',
+ 't/author-eol.t',
+ 't/author-no-tabs.t',
+ 't/author-pod-spell.t',
+ 't/release-cpan-changes.t',
+ 't/release-pod-coverage.t',
+ 't/release-pod-linkcheck.t',
+ 't/release-pod-no404s.t',
+ 't/release-pod-syntax.t',
+ 't/release-portability.t',
+ 't/release-synopsis.t'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -0,0 +1,48 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
+use Test::Spelling 0.12;
+use Pod::Wordlist;
+
+
+add_stopwords(<DATA>);
+all_pod_files_spelling_ok( qw( bin lib ) );
+__DATA__
+DROLSKY
+DROLSKY's
+Rolsky
+Rolsky's
+Stevan
+coercions
+cpan
+isa
+param
+subname
+Little
+stevan
+Dave
+autarch
+Dagfinn
+Ilmari
+Mannsåker
+ilmari
+Hans
+Staugaard
+staugaard
+Karen
+Etheridge
+ether
+lib
+MooseX
+Params
+Validate
@@ -0,0 +1,19 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use strict;
+use warnings;
+
+use Test::More 0.96 tests => 2;
+use_ok('Test::CPAN::Changes');
+subtest 'changes_ok' => sub {
+ changes_file_ok('Changes');
+};
+done_testing();
@@ -1,16 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-use strict;
-use warnings;
-use Test::More;
-
-eval 'use Test::EOL';
-plan skip_all => 'Test::EOL required' if $@;
-
-all_perl_files_ok({ trailing_whitespace => 1 });
@@ -1,16 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-use strict;
-use warnings;
-use Test::More;
-
-eval 'use Test::NoTabs';
-plan skip_all => 'Test::NoTabs required' if $@;
-
-all_perl_files_ok();
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!perl
BEGIN {
unless ($ENV{RELEASE_TESTING}) {
@@ -7,13 +7,47 @@ BEGIN {
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable.
-use strict;
-use warnings;
+use Test::Pod::Coverage 1.08;
+use Test::More 0.88;
-use Test::More;
+BEGIN {
+ if ( $] <= 5.008008 ) {
+ plan skip_all => 'These tests require Pod::Coverage::TrustPod, which only works with Perl 5.8.9+';
+ }
+}
+use Pod::Coverage::TrustPod;
+
+my %skip = map { $_ => 1 } qw( );
+
+my @modules;
+for my $module ( all_modules() ) {
+ next if $skip{$module};
+
+ push @modules, $module;
+}
+
+plan skip_all => 'All the modules we found were excluded from POD coverage test.'
+ unless @modules;
+
+plan tests => scalar @modules;
-eval "use Test::Pod::Coverage 1.04";
-plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@;
+my %trustme = (
+ 'MooseX::Params::Validate' => [
+ qr/^(?:validatep?|import)$/
+ ]
+ );
+
+for my $module ( sort @modules ) {
+ pod_coverage_ok(
+ $module,
+ {
+ coverage_class => 'Pod::Coverage::TrustPod',
+ trustme => $trustme{$module} || [],
+ },
+ "pod coverage for $module"
+ );
+}
-all_pod_coverage_ok( { trustme => [ qr/^(?:validatep?|import)$/ ] } );
+done_testing();
@@ -1,40 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-use strict;
-use warnings;
-
-use Test::More;
-
-eval "use Test::Spelling";
-plan skip_all => "Test::Spelling required for testing POD coverage"
- if $@;
-
-my @stopwords;
-for (<DATA>) {
- chomp;
- push @stopwords, $_
- unless /\A (?: \# | \s* \z)/msx; # skip comments, whitespace
-}
-
-add_stopwords(@stopwords);
-set_spell_cmd('aspell list -l en');
-
-# This prevents a weird segfault from the aspell command - see
-# https://bugs.launchpad.net/ubuntu/+source/aspell/+bug/71322
-local $ENV{LC_ALL} = 'C';
-all_pod_files_spelling_ok();
-
-__DATA__
-Rolsky
-Stevan
-coercions
-cpan
-isa
-param
-subname
@@ -7,9 +7,8 @@ BEGIN {
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
@@ -0,0 +1,19 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+ if $@;
+run_tests();
@@ -0,0 +1,13 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use Test::Synopsis;
+
+all_synopsis_ok();
@@ -0,0 +1,17 @@
+[@CorePrep]
+
+[Name]
+[Version]
+
+[Region / prelude]
+
+[Generic / SYNOPSIS]
+[Generic / DESCRIPTION]
+
+[Leftovers]
+
+[Region / postlude]
+
+[Authors]
+[Contributors]
+[Legal]