Changes | 1226 |
LICENSE | 11 |
MANIFEST | 03 |
META.json | 49235 |
META.yml | 62195 |
Makefile.PL | 2823 |
README | 24 |
dist.ini | 58 |
lib/Try/Tiny.pm | 627 |
t/00-compile.t | 5935 |
t/global_destruction_load.t | 018 |
t/lib/TryUser.pm | 09 |
t/named.t | 1010 |
xt/release/no-tabs.t | 421 |
xt/release/pod-coverage.t | 93 |
xt/release/pod-syntax.t | 32 |
16 files changed (This is a version diff) | 250620 |
@@ -1,5 +1,19 @@
Revision history for Try-Tiny
+0.22 2014-04-29
+ - add optional test deps as recommended prereqs (Karen Etheridge, #18)
+
+0.21 2014-04-15
+ - also skip the test if Capture::Tiny is too old (Martin Popel, #17)
+
+0.20 2014-03-21
+ - documentation updates (Flimm, #15)
+
+0.19 2014-01-22
+ - fix an obscure issue with loading modules during global destruction
+ (ilmari, #11)
+ - documentation updates (anaxagoras, #12)
+
0.18 2013-08-17
- fix tests for pre-Test-More-0.88 (Paul Howarth, #10)
@@ -29,47 +43,47 @@ Revision history for Try-Tiny
- warn loudly on exceptions in finally() blocks
- dzilify
-0.12
+0.12 2013-01-02
- doc fixes
-0.11
+0.11 2011-08-30
- fix broken dist
-0.10
+0.10 2011-04-27
- clarify some docs
-0.09
+0.09 2010-11-28
- don't index Try::Tiny::ScopeGuard
-0.08
+0.08 2010-11-28
- fix require vs use issue in blead (RT63410)
-0.07
+0.07 2010-10-21
- allow multiple finally blocks
- pass the error, if any, to finally blocks when called
-0.06
+0.06 2010-05-27
- in t/given_when.t use a plan instead of done_testing for more backwards
compatibility
-0.05
+0.05 2010-05-26
- Documentation fixes and clarifications
-0.04
+0.04 2010-01-22
- Restore list context propagation for catch blocks
- Fix a bug where finally blocks weren't always invoked
-0.03
+0.03 2010-01-22
- Support for 'finally' blocks (Andy Yates)
- More documentation and tests (many people)
- Sets $@ to the previous value at the beginning of the eval, to allow
the capture of an error stack when calling die.
-0.02
+0.02 2009-09-02
- Doc fixes from chromatic
- Various minor fixes from Adam Kennedy
- Additional documentation and code clarifications
- 5.005_04 compatibility
-0.01
+0.01 2009-08-31
- Initial release
@@ -1,4 +1,4 @@
-This software is Copyright (c) 2013 by Yuval Kogman.
+This software is Copyright (c) 2014 by Yuval Kogman.
This is free software, licensed under:
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.014.
Changes
LICENSE
MANIFEST
@@ -15,6 +16,8 @@ t/erroneous_usage.t
t/finally.t
t/given_when.t
t/global_destruction_forked.t
+t/global_destruction_load.t
+t/lib/TryUser.pm
t/named.t
t/when.t
xt/release/eol.t
@@ -5,7 +5,7 @@
"Jesse Luehrs <doy@tozt.net>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.120921",
+ "generated_by" : "Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640",
"license" : [
"mit"
],
@@ -23,6 +23,8 @@
"develop" : {
"requires" : {
"Pod::Coverage::TrustPod" : "0",
+ "Test::More" : "0",
+ "Test::NoTabs" : "0",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08"
}
@@ -30,8 +32,7 @@
"runtime" : {
"requires" : {
"Carp" : "0",
- "Exporter" : "0",
- "base" : "0",
+ "Exporter" : "5.57",
"constant" : "0",
"perl" : "5.006",
"strict" : "0",
@@ -39,14 +40,26 @@
}
},
"test" : {
+ "recommends" : {
+ "Capture::Tiny" : "0.12",
+ "Sub::Name" : "0",
+ "perl" : "5.010"
+ },
"requires" : {
- "File::Find" : "0",
- "File::Temp" : "0",
+ "File::Spec" : "0",
+ "IO::Handle" : "0",
+ "IPC::Open3" : "0",
"Test::More" : "0",
"if" : "0"
}
}
},
+ "provides" : {
+ "Try::Tiny" : {
+ "file" : "lib/Try/Tiny.pm",
+ "version" : "0.22"
+ }
+ },
"release_status" : "stable",
"resources" : {
"bugtracker" : {
@@ -59,91 +72,101 @@
"web" : "https://github.com/doy/try-tiny"
}
},
- "version" : "0.18",
+ "version" : "0.22",
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.018001"
+ "version" : "5.018002"
},
"plugins" : [
{
"class" : "Dist::Zilla::Plugin::GatherDir",
"name" : "@DOY/GatherDir",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::PruneCruft",
"name" : "@DOY/PruneCruft",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::ManifestSkip",
"name" : "@DOY/ManifestSkip",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@DOY/MetaYAML",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@DOY/License",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::Readme",
"name" : "@DOY/Readme",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::RunExtraTests",
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 1
+ }
+ },
"name" : "@DOY/RunExtraTests",
- "version" : "0.011"
+ "version" : "0.018"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "@DOY/ExecDir",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::ShareDir",
"name" : "@DOY/ShareDir",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 1
+ }
+ },
"name" : "@DOY/MakeMaker",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@DOY/Manifest",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@DOY/TestRelease",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@DOY/ConfirmRelease",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@DOY/MetaConfig",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@DOY/MetaJSON",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@DOY/NextRelease",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::CheckChangesHasContent",
@@ -153,7 +176,7 @@
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
"name" : "@DOY/PkgVersion",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
@@ -163,17 +186,28 @@
{
"class" : "Dist::Zilla::Plugin::PodCoverageTests",
"name" : "@DOY/PodCoverageTests",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@DOY/PodSyntaxTests",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::NoTabsTests",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::NoTabs" : {
+ "module_finder" : [
+ ":InstallModules"
+ ],
+ "script_finder" : [
+ ":ExecFiles",
+ ":TestFiles"
+ ]
+ }
+ },
"name" : "@DOY/NoTabsTests",
- "version" : "0.01"
+ "version" : "0.07"
},
{
"class" : "Dist::Zilla::Plugin::EOLTests",
@@ -182,8 +216,19 @@
},
{
"class" : "Dist::Zilla::Plugin::Test::Compile",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::Compile" : {
+ "filename" : "t/00-compile.t",
+ "module_finder" : [
+ ":InstallModules"
+ ],
+ "script_finder" : [
+ ":ExecFiles"
+ ]
+ }
+ },
"name" : "@DOY/Test::Compile",
- "version" : "2.002"
+ "version" : "2.039"
},
{
"class" : "Dist::Zilla::Plugin::Metadata",
@@ -193,47 +238,158 @@
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "@DOY/MetaResources",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
"name" : "@DOY/Git::Check",
- "version" : "2.013"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
"name" : "@DOY/Git::Commit",
- "version" : "2.013"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"name" : "@DOY/Git::Tag",
- "version" : "2.013"
+ "version" : "2.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::NextVersion",
"name" : "@DOY/Git::NextVersion",
- "version" : "2.013"
+ "version" : "2.020"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
+ "name" : "@DOY/ContributorsFromGit",
+ "version" : "0.006"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaProvides::Package",
+ "config" : {
+ "Dist::Zilla::Plugin::MetaProvides::Package" : {
+ "finder_objects" : [
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DOY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.014"
+ }
+ ]
+ },
+ "Dist::Zilla::Role::MetaProvider::Provider" : {
+ "inherit_missing" : "1",
+ "inherit_version" : "1",
+ "meta_noindex" : "1"
+ }
+ },
+ "name" : "@DOY/MetaProvides::Package",
+ "version" : "2.000001"
},
{
"class" : "Dist::Zilla::Plugin::PodWeaver",
+ "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::Plugin::SingleEncoding",
+ "name" : "@Default/SingleEncoding",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Name",
+ "name" : "@Default/Name",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Version",
+ "name" : "@Default/Version",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "@Default/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::Generic",
+ "name" : "OVERVIEW",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "ATTRIBUTES",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "METHODS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Collect",
+ "name" : "FUNCTIONS",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Leftovers",
+ "name" : "@Default/Leftovers",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Region",
+ "name" : "@Default/postlude",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Authors",
+ "name" : "@Default/Authors",
+ "version" : "4.006"
+ },
+ {
+ "class" : "Pod::Weaver::Section::Legal",
+ "name" : "@Default/Legal",
+ "version" : "4.006"
+ }
+ ]
+ }
+ },
"name" : "@DOY/PodWeaver",
- "version" : "3.101641"
+ "version" : "4.005"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@DOY/UploadToCPAN",
- "version" : "4.300034"
- },
- {
- "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
- "name" : "ContributorsFromGit",
- "version" : "0.006"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "AutoPrereqs",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -244,37 +400,63 @@
}
},
"name" : "Prereqs",
- "version" : "4.300034"
+ "version" : "5.014"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "test",
+ "type" : "recommends"
+ }
+ },
+ "name" : "TestRecommends",
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "4.300034"
+ "version" : "5.014"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "4.300034"
+ "version" : "5.014"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.014"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.014"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : "@DOY/MetaProvides::Package/AUTOVIV/:InstallModulesPM",
+ "version" : "5.014"
}
],
"zilla" : {
@@ -282,13 +464,15 @@
"config" : {
"is_trial" : "0"
},
- "version" : "4.300034"
+ "version" : "5.014"
}
},
"x_authority" : "cpan:NUFFIN",
"x_contributors" : [
"Alex <alex@koban.(none)>",
"Andrew Yates <ayates@haddock.local>",
+ "Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>",
+ "David Lowe <davidl@lokku.com>",
"Glenn Fowler <cebjyre@cpan.org>",
"Graham Knop <haarg@haarg.org>",
"Hans Dieter Pearcey <hdp@weftsoar.net>",
@@ -300,6 +484,8 @@
"Paul Howarth <paul@city-fan.org>",
"Peter Rabbitson <ribasushi@cpan.org>",
"Ricardo Signes <rjbs@cpan.org>",
+ "anaxagoras <walkeraj@gmail.com>",
+ "awalker <awalker@sourcefire.com>",
"chromatic <chromatic@wgz.org>"
]
}
@@ -4,172 +4,281 @@ author:
- 'Yuval Kogman <nothingmuch@woobling.org>'
- 'Jesse Luehrs <doy@tozt.net>'
build_requires:
- File::Find: 0
- File::Temp: 0
- Test::More: 0
- if: 0
+ File::Spec: '0'
+ IO::Handle: '0'
+ IPC::Open3: '0'
+ Test::More: '0'
+ if: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300034, CPAN::Meta::Converter version 2.120921'
+generated_by: 'Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640'
license: mit
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: Try-Tiny
+provides:
+ Try::Tiny:
+ file: lib/Try/Tiny.pm
+ version: '0.22'
requires:
- Carp: 0
- Exporter: 0
- base: 0
- constant: 0
- perl: 5.006
- strict: 0
- warnings: 0
+ Carp: '0'
+ Exporter: '5.57'
+ constant: '0'
+ perl: '5.006'
+ strict: '0'
+ warnings: '0'
resources:
bugtracker: https://github.com/doy/try-tiny/issues
homepage: http://metacpan.org/release/Try-Tiny
repository: git://github.com/doy/try-tiny.git
-version: 0.18
+version: '0.22'
x_Dist_Zilla:
perl:
- version: 5.018001
+ version: '5.018002'
plugins:
-
class: Dist::Zilla::Plugin::GatherDir
name: '@DOY/GatherDir'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::PruneCruft
name: '@DOY/PruneCruft'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::ManifestSkip
name: '@DOY/ManifestSkip'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@DOY/MetaYAML'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::License
name: '@DOY/License'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::Readme
name: '@DOY/Readme'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::RunExtraTests
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 1
name: '@DOY/RunExtraTests'
- version: 0.011
+ version: '0.018'
-
class: Dist::Zilla::Plugin::ExecDir
name: '@DOY/ExecDir'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::ShareDir
name: '@DOY/ShareDir'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::MakeMaker
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 1
name: '@DOY/MakeMaker'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::Manifest
name: '@DOY/Manifest'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@DOY/TestRelease'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@DOY/ConfirmRelease'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@DOY/MetaConfig'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@DOY/MetaJSON'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@DOY/NextRelease'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::CheckChangesHasContent
name: '@DOY/CheckChangesHasContent'
- version: 0.006
+ version: '0.006'
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@DOY/PkgVersion'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::Authority
name: '@DOY/Authority'
- version: 1.006
+ version: '1.006'
-
class: Dist::Zilla::Plugin::PodCoverageTests
name: '@DOY/PodCoverageTests'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@DOY/PodSyntaxTests'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::NoTabsTests
+ config:
+ Dist::Zilla::Plugin::Test::NoTabs:
+ module_finder:
+ - ':InstallModules'
+ script_finder:
+ - ':ExecFiles'
+ - ':TestFiles'
name: '@DOY/NoTabsTests'
- version: 0.01
+ version: '0.07'
-
class: Dist::Zilla::Plugin::EOLTests
name: '@DOY/EOLTests'
- version: 0.02
+ version: '0.02'
-
class: Dist::Zilla::Plugin::Test::Compile
+ config:
+ Dist::Zilla::Plugin::Test::Compile:
+ filename: t/00-compile.t
+ module_finder:
+ - ':InstallModules'
+ script_finder:
+ - ':ExecFiles'
name: '@DOY/Test::Compile'
- version: 2.002
+ version: '2.039'
-
class: Dist::Zilla::Plugin::Metadata
name: '@DOY/Metadata'
- version: 3.03
+ version: '3.03'
-
class: Dist::Zilla::Plugin::MetaResources
name: '@DOY/MetaResources'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::Git::Check
name: '@DOY/Git::Check'
- version: 2.013
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::Commit
name: '@DOY/Git::Commit'
- version: 2.013
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::Tag
name: '@DOY/Git::Tag'
- version: 2.013
+ version: '2.020'
-
class: Dist::Zilla::Plugin::Git::NextVersion
name: '@DOY/Git::NextVersion'
- version: 2.013
+ version: '2.020'
+ -
+ class: Dist::Zilla::Plugin::ContributorsFromGit
+ name: '@DOY/ContributorsFromGit'
+ version: '0.006'
+ -
+ class: Dist::Zilla::Plugin::MetaProvides::Package
+ config:
+ Dist::Zilla::Plugin::MetaProvides::Package:
+ finder_objects:
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DOY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.014'
+ Dist::Zilla::Role::MetaProvider::Provider:
+ inherit_missing: '1'
+ inherit_version: '1'
+ meta_noindex: '1'
+ name: '@DOY/MetaProvides::Package'
+ version: '2.000001'
-
class: Dist::Zilla::Plugin::PodWeaver
+ 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::Plugin::SingleEncoding
+ name: '@Default/SingleEncoding'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Name
+ name: '@Default/Name'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Version
+ name: '@Default/Version'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: '@Default/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::Generic
+ name: OVERVIEW
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: ATTRIBUTES
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: METHODS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Collect
+ name: FUNCTIONS
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Leftovers
+ name: '@Default/Leftovers'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Region
+ name: '@Default/postlude'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Authors
+ name: '@Default/Authors'
+ version: '4.006'
+ -
+ class: Pod::Weaver::Section::Legal
+ name: '@Default/Legal'
+ version: '4.006'
name: '@DOY/PodWeaver'
- version: 3.101641
+ version: '4.005'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@DOY/UploadToCPAN'
- version: 4.300034
- -
- class: Dist::Zilla::Plugin::ContributorsFromGit
- name: ContributorsFromGit
- version: 0.006
+ version: '5.014'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: AutoPrereqs
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -177,40 +286,62 @@ x_Dist_Zilla:
phase: runtime
type: requires
name: Prereqs
- version: 4.300034
+ version: '5.014'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: test
+ type: recommends
+ name: TestRecommends
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: 4.300034
+ version: '5.014'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: 4.300034
+ version: '5.014'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.014'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.014'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: '@DOY/MetaProvides::Package/AUTOVIV/:InstallModulesPM'
+ version: '5.014'
zilla:
class: Dist::Zilla::Dist::Builder
config:
- is_trial: 0
- version: 4.300034
+ is_trial: '0'
+ version: '5.014'
x_authority: cpan:NUFFIN
x_contributors:
- 'Alex <alex@koban.(none)>'
- 'Andrew Yates <ayates@haddock.local>'
+ - 'Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>'
+ - 'David Lowe <davidl@lokku.com>'
- 'Glenn Fowler <cebjyre@cpan.org>'
- 'Graham Knop <haarg@haarg.org>'
- 'Hans Dieter Pearcey <hdp@weftsoar.net>'
@@ -222,4 +353,6 @@ x_contributors:
- 'Paul Howarth <paul@city-fan.org>'
- 'Peter Rabbitson <ribasushi@cpan.org>'
- 'Ricardo Signes <rjbs@cpan.org>'
+ - 'anaxagoras <walkeraj@gmail.com>'
+ - 'awalker <awalker@sourcefire.com>'
- 'chromatic <chromatic@wgz.org>'
@@ -1,4 +1,5 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.014.
use strict;
use warnings;
@@ -21,49 +22,43 @@ my %WriteMakefileArgs = (
"NAME" => "Try::Tiny",
"PREREQ_PM" => {
"Carp" => 0,
- "Exporter" => 0,
- "base" => 0,
+ "Exporter" => "5.57",
"constant" => 0,
"strict" => 0,
"warnings" => 0
},
"TEST_REQUIRES" => {
- "File::Find" => 0,
- "File::Temp" => 0,
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
"Test::More" => 0,
"if" => 0
},
- "VERSION" => "0.18",
+ "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};
- }
- }
-}
+my %FallbackPrereqs = (
+ "Carp" => 0,
+ "Exporter" => "5.57",
+ "File::Spec" => 0,
+ "IO::Handle" => 0,
+ "IPC::Open3" => 0,
+ "Test::More" => 0,
+ "constant" => 0,
+ "if" => 0,
+ "strict" => 0,
+ "warnings" => 0
+);
-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};
- }
- }
+
+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,14 +1,16 @@
This archive contains the distribution Try-Tiny,
-version 0.18:
+version 0.22:
minimal try/catch with proper preservation of $@
-This software is Copyright (c) 2013 by Yuval Kogman.
+This software is Copyright (c) 2014 by Yuval Kogman.
This is free software, licensed under:
The MIT (X11) License
+This README file was generated by Dist::Zilla::Plugin::Readme v5.014.
+
@@ -5,23 +5,26 @@ license = MIT
copyright_holder = Yuval Kogman
[@DOY]
-:version = 0.12
+:version = 0.14
dist = Try-Tiny
repository = github
authority = cpan:NUFFIN
-bugtracker_web = https://github.com/doy/try-tiny/issues
-bugtracker_mailto =
done_testing = 0
Git::Tag_tag_format = %N-%v
Git::NextVersion_version_regexp = ^Try-Tiny-(.+)$
-[ContributorsFromGit]
-
[AutoPrereqs]
; tests optionally require 5.010
skip = ^perl$
; tests for optional Sub::Name stuff
skip = ^Sub::Name$
+; tests optionally require Capture::Tiny
+skip = ^Capture::Tiny$
[Prereqs]
perl = 5.006
+
+[Prereqs / TestRecommends]
+Capture::Tiny = 0.12 ; capture_stderr
+perl = 5.010
+Sub::Name = 0
@@ -2,16 +2,14 @@ package Try::Tiny;
BEGIN {
$Try::Tiny::AUTHORITY = 'cpan:NUFFIN';
}
-{
- $Try::Tiny::VERSION = '0.18';
-}
+$Try::Tiny::VERSION = '0.22';
use 5.006;
# ABSTRACT: minimal try/catch with proper preservation of $@
use strict;
use warnings;
-use base 'Exporter';
+use Exporter 5.57 'import';
our @EXPORT = our @EXPORT_OK = qw(try catch finally);
use Carp;
@@ -176,13 +174,15 @@ __END__
=pod
+=encoding UTF-8
+
=head1 NAME
Try::Tiny - minimal try/catch with proper preservation of $@
=head1 VERSION
-version 0.18
+version 0.22
=head1 SYNOPSIS
@@ -246,6 +246,13 @@ C<finally> blocks are always executed making them suitable for cleanup code
which cannot be handled using local. You can add as many C<finally> blocks to a
given C<try> block as you like.
+Note that adding a C<finally> block without a preceding C<catch> block
+suppresses any errors. This behaviour is consistent with using a standalone
+C<eval>, but it is not consistent with C<try>/C<finally> patterns found in
+other programming languages, such as Java, Python, Javascript or C#. If you
+learnt the C<try>/C<finally> pattern from one of these languages, watch out for
+this.
+
=head1 EXPORTS
All functions are exported by default using L<Exporter>.
@@ -514,6 +521,20 @@ Instead, you should capture the return value:
say "This text WILL NEVER appear!";
}
+ # OR
+ sub parent_sub_with_catch {
+ my $success = try {
+ die;
+ 1;
+ }
+ catch {
+ # do something with $_
+ return undef; #see note
+ };
+ return unless $success;
+
+ say "This text WILL NEVER appear!";
+ }
Note that if you have a C<catch> block, it must return C<undef> for this to work,
since if a C<catch> block exists, its return value is returned in place of C<undef>
@@ -647,7 +668,7 @@ Jesse Luehrs <doy@tozt.net>
=head1 COPYRIGHT AND LICENSE
-This software is Copyright (c) 2013 by Yuval Kogman.
+This software is Copyright (c) 2014 by Yuval Kogman.
This is free software, licensed under:
@@ -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.039
+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 = (
+ 'Try/Tiny.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
- # no fake requested ## 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};
+
+
@@ -0,0 +1,18 @@
+use strict;
+use warnings;
+use Test::More;
+
+BEGIN {
+ plan skip_all => 'Capture::Tiny 0.12 required'
+ unless eval { require Capture::Tiny; Capture::Tiny->VERSION(0.12); 1 };
+ plan tests => 3;
+ Capture::Tiny->import(qw(capture_stderr));
+}
+
+for my $func (qw(try catch finally)) {
+ is capture_stderr {
+ system $^X, qw(-It/lib -we),
+ qq{sub DESTROY { require TryUser; TryUser->test_$func }} .
+ q{our $o; $o = bless []};
+ }, '', "$func gets installed when loading Try::Tiny during global destruction";
+}
@@ -0,0 +1,9 @@
+package TryUser;
+
+use Try::Tiny;
+
+sub test_try { try { } }
+sub test_catch { try { } catch { } }
+sub test_finally { try { } finally { } }
+
+1;
@@ -6,32 +6,32 @@ use warnings;
use Test::More;
BEGIN {
- plan skip_all => "Sub::Name required"
- unless eval { require Sub::Name; 1 };
- plan tests => 4;
+ plan skip_all => "Sub::Name required"
+ unless eval { require Sub::Name; 1 };
+ plan tests => 3;
}
-BEGIN { use_ok 'Try::Tiny' }
+use Try::Tiny;
my $name;
try {
- $name = (caller(0))[3];
+ $name = (caller(0))[3];
};
is $name, "main::try {...} ", "try name"; # note extra space
try {
- die "Boom";
+ die "Boom";
} catch {
- $name = (caller(0))[3];
+ $name = (caller(0))[3];
};
is $name, "main::catch {...} ", "catch name"; # note extra space
try {
- die "Boom";
+ die "Boom";
} catch {
- # noop
+ # noop
} finally {
- $name = (caller(0))[3];
+ $name = (caller(0))[3];
};
is $name, "main::finally {...} ", "finally name"; # note extra space
@@ -1,8 +1,25 @@
use strict;
use warnings;
-use Test::More;
-eval 'use Test::NoTabs';
-plan skip_all => 'Test::NoTabs required' if $@;
+# this test was generated with Dist::Zilla::Plugin::NoTabsTests 0.07
-all_perl_files_ok();
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+ 'lib/Try/Tiny.pm',
+ 't/00-compile.t',
+ 't/basic.t',
+ 't/context.t',
+ 't/erroneous_usage.t',
+ 't/finally.t',
+ 't/given_when.t',
+ 't/global_destruction_forked.t',
+ 't/global_destruction_load.t',
+ 't/lib/TryUser.pm',
+ 't/named.t',
+ 't/when.t'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -1,13 +1,7 @@
#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
-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 $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -1,7 +1,6 @@
#!perl
+# 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();