Hello community,

here is the log from the commit of package perl-App-Cmd for openSUSE:Factory 
checked in at 2012-02-21 12:22:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-App-Cmd (Old)
 and      /work/SRC/openSUSE:Factory/.perl-App-Cmd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-App-Cmd", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-App-Cmd/perl-App-Cmd.changes        
2011-12-25 17:37:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-App-Cmd.new/perl-App-Cmd.changes   
2012-02-21 12:22:51.000000000 +0100
@@ -1,0 +2,12 @@
+Tue Feb 21 08:55:55 UTC 2012 - co...@suse.com
+
+- updated to 0.316
+       fix the test of "echo" on Win32 (thanks, Chris Williams)
+       totally worthless release made by mistake
+       adds App::Cmd::Tester::CaptureExternal to capture output from
+       external subcommands (thanks, David Golden)
+       if there's no Pod =head1 NAME, a Pod::Weaver-esque #ABSTRACT will be
+       respected (thanks, Andreas Hernitscheck)
+       don't load Text::Abbrev until it's needed (thanks, Olivier Mengué)
+
+-------------------------------------------------------------------

Old:
----
  App-Cmd-0.312.tar.gz

New:
----
  App-Cmd-0.316.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-App-Cmd.spec ++++++
--- /var/tmp/diff_new_pack.wfZZ0K/_old  2012-02-21 12:22:52.000000000 +0100
+++ /var/tmp/diff_new_pack.wfZZ0K/_new  2012-02-21 12:22:52.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-App-Cmd
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,47 +15,63 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           perl-App-Cmd
-Version:        0.312
+Version:        0.316
 Release:        0
 %define cpan_name App-Cmd
 Summary:        Write command line apps with less suffering
-License:        GPL-1.0+ or Artistic-1.0
+License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/App-Cmd/
-#Source:         
http://www.cpan.org/authors/id/R/RJ/RJBS/App-Cmd-%{version}.tar.gz
-Source:         %{cpan_name}-%{version}.tar.gz
+Source:         
http://www.cpan.org/authors/id/R/RJ/RJBS/%{cpan_name}-%{version}.tar.gz
 Patch1:         perl-App-Cmd-old_Test-More.patch
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
 BuildRequires:  perl-macros
-BuildRequires:  perl(Carp)
+BuildRequires:  perl(Capture::Tiny) >= 0.13
 BuildRequires:  perl(Class::Load) >= 0.06
-BuildRequires:  perl(Data::Dumper)
 BuildRequires:  perl(Data::OptList)
-BuildRequires:  perl(File::Basename)
 BuildRequires:  perl(Getopt::Long::Descriptive) >= 0.084
 BuildRequires:  perl(IO::TieCombine)
+BuildRequires:  perl(IPC::Cmd)
+BuildRequires:  perl(Module::Pluggable::Object)
 BuildRequires:  perl(String::RewritePrefix)
 BuildRequires:  perl(Sub::Exporter)
 BuildRequires:  perl(Sub::Exporter::Util)
 BuildRequires:  perl(Sub::Install)
 BuildRequires:  perl(Test::Fatal)
-BuildRequires:  perl(Test::More) >= 0.88
-BuildRequires:  perl(Text::Abbrev)
-BuildRequires:  perl(constant)
-Requires:       perl(Carp)
+BuildRequires:  perl(Test::More) >= 0.96
+BuildRequires:  perl(parent)
+#BuildRequires: perl(App::Cmd)
+#BuildRequires: perl(App::Cmd::ArgProcessor)
+#BuildRequires: perl(App::Cmd::Command)
+#BuildRequires: perl(App::Cmd::Plugin)
+#BuildRequires: perl(App::Cmd::Setup)
+#BuildRequires: perl(App::Cmd::Simple)
+#BuildRequires: perl(App::Cmd::Subdispatch)
+#BuildRequires: perl(App::Cmd::Tester)
+#BuildRequires: perl(App::Cmd::Tester::CaptureExternal)
+#BuildRequires: perl(Test::BrokenCmd)
+#BuildRequires: perl(Test::BrokenCmd::Command)
+#BuildRequires: perl(Test::MyCmd)
+#BuildRequires: perl(Test::MyCmdAbbrev)
+#BuildRequires: perl(Test::MySimple)
+#BuildRequires: perl(Test::WithSetup)
+#BuildRequires: perl(Test::WSNCC)
+#BuildRequires: perl(Test::WSOF)
+Requires:       perl(Capture::Tiny) >= 0.13
 Requires:       perl(Class::Load) >= 0.06
 Requires:       perl(Data::OptList)
-Requires:       perl(File::Basename)
 Requires:       perl(Getopt::Long::Descriptive) >= 0.084
 Requires:       perl(IO::TieCombine)
+Requires:       perl(Module::Pluggable::Object)
 Requires:       perl(String::RewritePrefix)
 Requires:       perl(Sub::Exporter)
 Requires:       perl(Sub::Exporter::Util)
 Requires:       perl(Sub::Install)
-Requires:       perl(Text::Abbrev)
+Requires:       perl(parent)
 %{perl_requires}
 
 %description
@@ -85,9 +101,6 @@
 %perl_process_packlist
 %perl_gen_filelist
 
-%clean
-%{__rm} -rf %{buildroot}
-
 %files -f %{name}.files
 %defattr(-,root,root,755)
 %doc Changes LICENSE README

++++++ App-Cmd-0.312.tar.gz -> App-Cmd-0.316.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/Changes new/App-Cmd-0.316/Changes
--- old/App-Cmd-0.312/Changes   2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/Changes   2012-02-11 16:51:08.000000000 +0100
@@ -1,5 +1,21 @@
 Revision history for App-Cmd
 
+0.316     2012-02-11 10:50:46 America/New_York
+          fix the test of "echo" on Win32 (thanks, Chris Williams)
+
+0.315     2012-02-10 09:08:49 America/New_York
+          totally worthless release made by mistake
+
+0.314     2012-01-03 21:38:59 America/New_York
+          adds App::Cmd::Tester::CaptureExternal to capture output from
+          external subcommands (thanks, David Golden)
+
+          if there's no Pod =head1 NAME, a Pod::Weaver-esque #ABSTRACT will be
+          respected (thanks, Andreas Hernitscheck)
+
+0.313     2011-12-23 13:29:53 America/New_York
+          don't load Text::Abbrev until it's needed (thanks, Olivier Mengué)
+
 0.312     2011-08-17 18:02:26 America/New_York
           typo fixes to docs (thanks, Glenn Fowler)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/LICENSE new/App-Cmd-0.316/LICENSE
--- old/App-Cmd-0.312/LICENSE   2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/LICENSE   2012-02-11 16:51:08.000000000 +0100
@@ -1,4 +1,4 @@
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 @@
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2011 by Ricardo Signes.
+This software is Copyright (c) 2012 by Ricardo Signes.
 
 This is free software, licensed under:
 
@@ -22,7 +22,7 @@
                      Version 1, February 1989
 
  Copyright (C) 1989 Free Software Foundation, Inc.
-                    51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ 51 Franklin St, Suite 500, Boston, MA  02110-1335  USA
 
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@
 
 --- The Artistic License 1.0 ---
 
-This software is Copyright (c) 2011 by Ricardo Signes.
+This software is Copyright (c) 2012 by Ricardo Signes.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/MANIFEST new/App-Cmd-0.316/MANIFEST
--- old/App-Cmd-0.312/MANIFEST  2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/MANIFEST  2012-02-11 16:51:08.000000000 +0100
@@ -17,15 +17,18 @@
 lib/App/Cmd/Subdispatch.pm
 lib/App/Cmd/Subdispatch/DashedStyle.pm
 lib/App/Cmd/Tester.pm
+lib/App/Cmd/Tester/CaptureExternal.pm
 lib/App/Cmd/Tutorial.pod
 t/00-load.t
 t/abbrev.t
 t/basic.t
+t/capture-ext.t
 t/lib/Test/BrokenCmd.pm
 t/lib/Test/BrokenCmd/Command.pm
 t/lib/Test/MyCmd.pm
 t/lib/Test/MyCmd/Command/exit.pm
 t/lib/Test/MyCmd/Command/frobulate.pm
+t/lib/Test/MyCmd/Command/hello.pm
 t/lib/Test/MyCmd/Command/justusage.pm
 t/lib/Test/MyCmd/Command/stock.pm
 t/lib/Test/MyCmd2.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/META.json new/App-Cmd-0.316/META.json
--- old/App-Cmd-0.312/META.json 2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/META.json 2012-02-11 16:51:08.000000000 +0100
@@ -4,7 +4,7 @@
       "Ricardo Signes <r...@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 4.200015, CPAN::Meta::Converter 
version 2.112150",
+   "generated_by" : "Dist::Zilla version 4.300007, CPAN::Meta::Converter 
version 2.120351",
    "license" : [
       "perl_5"
    ],
@@ -21,27 +21,33 @@
       },
       "runtime" : {
          "requires" : {
-            "Carp" : 0,
+            "Capture::Tiny" : "0.13",
+            "Carp" : "0",
             "Class::Load" : "0.06",
-            "Data::OptList" : 0,
-            "File::Basename" : 0,
+            "Data::OptList" : "0",
+            "File::Basename" : "0",
             "Getopt::Long::Descriptive" : "0.084",
-            "IO::TieCombine" : 0,
-            "Module::Pluggable::Object" : 0,
-            "String::RewritePrefix" : 0,
-            "Sub::Exporter" : 0,
-            "Sub::Exporter::Util" : 0,
-            "Sub::Install" : 0,
-            "Text::Abbrev" : 0,
-            "constant" : 0,
-            "perl" : "5.006"
+            "IO::TieCombine" : "0",
+            "Module::Pluggable::Object" : "0",
+            "String::RewritePrefix" : "0",
+            "Sub::Exporter" : "0",
+            "Sub::Exporter::Util" : "0",
+            "Sub::Install" : "0",
+            "Text::Abbrev" : "0",
+            "constant" : "0",
+            "parent" : "0",
+            "perl" : "5.006",
+            "strict" : "0",
+            "warnings" : "0"
          }
       },
       "test" : {
          "requires" : {
-            "Data::Dumper" : 0,
-            "Test::Fatal" : 0,
-            "Test::More" : "0.96"
+            "Data::Dumper" : "0",
+            "IPC::Cmd" : "0",
+            "Test::Fatal" : "0",
+            "Test::More" : "0.96",
+            "base" : "0"
          }
       }
    },
@@ -50,122 +56,122 @@
       "homepage" : "https://github.com/rjbs/app-cmd";,
       "repository" : {
          "type" : "git",
-         "url" : "https://github.com/rjbs/app-cmd";,
+         "url" : "https://github.com/rjbs/app-cmd.git";,
          "web" : "https://github.com/rjbs/app-cmd";
       }
    },
-   "version" : "0.312",
+   "version" : "0.316",
    "x_Dist_Zilla" : {
       "plugins" : [
          {
             "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
             "name" : "@RJBS/CheckPrereqsIndexed",
-            "version" : "0.003"
+            "version" : "0.007"
          },
          {
             "class" : "Dist::Zilla::Plugin::GatherDir",
             "name" : "@RJBS/@Basic/GatherDir",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::PruneCruft",
             "name" : "@RJBS/@Basic/PruneCruft",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::ManifestSkip",
             "name" : "@RJBS/@Basic/ManifestSkip",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@RJBS/@Basic/MetaYAML",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@RJBS/@Basic/License",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@RJBS/@Basic/Readme",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExtraTests",
             "name" : "@RJBS/@Basic/ExtraTests",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@RJBS/@Basic/ExecDir",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@RJBS/@Basic/ShareDir",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::MakeMaker",
             "name" : "@RJBS/@Basic/MakeMaker",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@RJBS/@Basic/Manifest",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@RJBS/@Basic/TestRelease",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@RJBS/@Basic/ConfirmRelease",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@RJBS/@Basic/UploadToCPAN",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "@RJBS/AutoPrereqs",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::NextVersion",
             "name" : "@RJBS/Git::NextVersion",
-            "version" : "1.112070"
+            "version" : "1.120370"
          },
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@RJBS/PkgVersion",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@RJBS/MetaConfig",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@RJBS/MetaJSON",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@RJBS/NextRelease",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@RJBS/PodSyntaxTests",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::Repository",
@@ -181,7 +187,7 @@
                }
             },
             "name" : "@RJBS/TestMoreWithSubtests",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodWeaver",
@@ -191,27 +197,27 @@
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
             "name" : "@RJBS/GithubMeta",
-            "version" : "0.16"
+            "version" : "0.28"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
             "name" : "@RJBS/@Git/Check",
-            "version" : "1.112070"
+            "version" : "1.120370"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Commit",
             "name" : "@RJBS/@Git/Commit",
-            "version" : "1.112070"
+            "version" : "1.120370"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Tag",
             "name" : "@RJBS/@Git/Tag",
-            "version" : "1.112070"
+            "version" : "1.120370"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Push",
             "name" : "@RJBS/@Git/Push",
-            "version" : "1.112070"
+            "version" : "1.120370"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -222,37 +228,37 @@
                }
             },
             "name" : "Prereqs",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "4.200015"
+            "version" : "4.300007"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "4.200015"
+            "version" : "4.300007"
          }
       ],
       "zilla" : {
@@ -260,7 +266,7 @@
          "config" : {
             "is_trial" : "0"
          },
-         "version" : "4.200015"
+         "version" : "4.300007"
       }
    }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/META.yml new/App-Cmd-0.316/META.yml
--- old/App-Cmd-0.312/META.yml  2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/META.yml  2012-02-11 16:51:08.000000000 +0100
@@ -4,18 +4,21 @@
   - 'Ricardo Signes <r...@cpan.org>'
 build_requires:
   Data::Dumper: 0
+  IPC::Cmd: 0
   Test::Fatal: 0
   Test::More: 0.96
+  base: 0
 configure_requires:
   ExtUtils::MakeMaker: 6.30
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.200015, CPAN::Meta::Converter version 
2.112150'
+generated_by: 'Dist::Zilla version 4.300007, CPAN::Meta::Converter version 
2.120351'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
   version: 1.4
 name: App-Cmd
 requires:
+  Capture::Tiny: 0.13
   Carp: 0
   Class::Load: 0.06
   Data::OptList: 0
@@ -29,101 +32,104 @@
   Sub::Install: 0
   Text::Abbrev: 0
   constant: 0
+  parent: 0
   perl: 5.006
+  strict: 0
+  warnings: 0
 resources:
   homepage: https://github.com/rjbs/app-cmd
-  repository: https://github.com/rjbs/app-cmd
-version: 0.312
+  repository: https://github.com/rjbs/app-cmd.git
+version: 0.316
 x_Dist_Zilla:
   plugins:
     -
       class: Dist::Zilla::Plugin::CheckPrereqsIndexed
       name: '@RJBS/CheckPrereqsIndexed'
-      version: 0.003
+      version: 0.007
     -
       class: Dist::Zilla::Plugin::GatherDir
       name: '@RJBS/@Basic/GatherDir'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::PruneCruft
       name: '@RJBS/@Basic/PruneCruft'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::ManifestSkip
       name: '@RJBS/@Basic/ManifestSkip'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@RJBS/@Basic/MetaYAML'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::License
       name: '@RJBS/@Basic/License'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@RJBS/@Basic/Readme'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::ExtraTests
       name: '@RJBS/@Basic/ExtraTests'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@RJBS/@Basic/ExecDir'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@RJBS/@Basic/ShareDir'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::MakeMaker
       name: '@RJBS/@Basic/MakeMaker'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@RJBS/@Basic/Manifest'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@RJBS/@Basic/TestRelease'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@RJBS/@Basic/ConfirmRelease'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@RJBS/@Basic/UploadToCPAN'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: '@RJBS/AutoPrereqs'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::Git::NextVersion
       name: '@RJBS/Git::NextVersion'
-      version: 1.112070
+      version: 1.120370
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@RJBS/PkgVersion'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@RJBS/MetaConfig'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@RJBS/MetaJSON'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@RJBS/NextRelease'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@RJBS/PodSyntaxTests'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::Repository
       name: '@RJBS/Repository'
@@ -135,7 +141,7 @@
           phase: test
           type: requires
       name: '@RJBS/TestMoreWithSubtests'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::PodWeaver
       name: '@RJBS/PodWeaver'
@@ -143,23 +149,23 @@
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: '@RJBS/GithubMeta'
-      version: 0.16
+      version: 0.28
     -
       class: Dist::Zilla::Plugin::Git::Check
       name: '@RJBS/@Git/Check'
-      version: 1.112070
+      version: 1.120370
     -
       class: Dist::Zilla::Plugin::Git::Commit
       name: '@RJBS/@Git/Commit'
-      version: 1.112070
+      version: 1.120370
     -
       class: Dist::Zilla::Plugin::Git::Tag
       name: '@RJBS/@Git/Tag'
-      version: 1.112070
+      version: 1.120370
     -
       class: Dist::Zilla::Plugin::Git::Push
       name: '@RJBS/@Git/Push'
-      version: 1.112070
+      version: 1.120370
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -167,33 +173,33 @@
           phase: runtime
           type: requires
       name: Prereqs
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: 4.200015
+      version: 4.300007
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: 4.200015
+      version: 4.300007
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
       is_trial: 0
-    version: 4.200015
+    version: 4.300007
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/Makefile.PL 
new/App-Cmd-0.316/Makefile.PL
--- old/App-Cmd-0.312/Makefile.PL       2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/Makefile.PL       2012-02-11 16:51:08.000000000 +0100
@@ -9,38 +9,44 @@
 
 
 my %WriteMakefileArgs = (
-  'ABSTRACT' => 'write command line apps with less suffering',
-  'AUTHOR' => 'Ricardo Signes <r...@cpan.org>',
-  'BUILD_REQUIRES' => {
-    'Data::Dumper' => '0',
-    'Test::Fatal' => '0',
-    'Test::More' => '0.96'
+  "ABSTRACT" => "write command line apps with less suffering",
+  "AUTHOR" => "Ricardo Signes <rjbs\@cpan.org>",
+  "BUILD_REQUIRES" => {
+    "Data::Dumper" => 0,
+    "IPC::Cmd" => 0,
+    "Test::Fatal" => 0,
+    "Test::More" => "0.96",
+    "base" => 0
   },
-  'CONFIGURE_REQUIRES' => {
-    'ExtUtils::MakeMaker' => '6.30'
+  "CONFIGURE_REQUIRES" => {
+    "ExtUtils::MakeMaker" => "6.30"
   },
-  'DISTNAME' => 'App-Cmd',
-  'EXE_FILES' => [],
-  'LICENSE' => 'perl',
-  'NAME' => 'App::Cmd',
-  'PREREQ_PM' => {
-    'Carp' => '0',
-    'Class::Load' => '0.06',
-    'Data::OptList' => '0',
-    'File::Basename' => '0',
-    'Getopt::Long::Descriptive' => '0.084',
-    'IO::TieCombine' => '0',
-    'Module::Pluggable::Object' => '0',
-    'String::RewritePrefix' => '0',
-    'Sub::Exporter' => '0',
-    'Sub::Exporter::Util' => '0',
-    'Sub::Install' => '0',
-    'Text::Abbrev' => '0',
-    'constant' => '0'
+  "DISTNAME" => "App-Cmd",
+  "EXE_FILES" => [],
+  "LICENSE" => "perl",
+  "NAME" => "App::Cmd",
+  "PREREQ_PM" => {
+    "Capture::Tiny" => "0.13",
+    "Carp" => 0,
+    "Class::Load" => "0.06",
+    "Data::OptList" => 0,
+    "File::Basename" => 0,
+    "Getopt::Long::Descriptive" => "0.084",
+    "IO::TieCombine" => 0,
+    "Module::Pluggable::Object" => 0,
+    "String::RewritePrefix" => 0,
+    "Sub::Exporter" => 0,
+    "Sub::Exporter::Util" => 0,
+    "Sub::Install" => 0,
+    "Text::Abbrev" => 0,
+    "constant" => 0,
+    "parent" => 0,
+    "strict" => 0,
+    "warnings" => 0
   },
-  'VERSION' => '0.312',
-  'test' => {
-    'TESTS' => 't/*.t'
+  "VERSION" => "0.316",
+  "test" => {
+    "TESTS" => "t/*.t"
   }
 );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/README new/App-Cmd-0.316/README
--- old/App-Cmd-0.312/README    2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/README    2012-02-11 16:51:08.000000000 +0100
@@ -1,11 +1,11 @@
 
 
 This archive contains the distribution App-Cmd,
-version 0.312:
+version 0.316:
 
   write command line apps with less suffering
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/ArgProcessor.pm 
new/App-Cmd-0.316/lib/App/Cmd/ArgProcessor.pm
--- old/App-Cmd-0.312/lib/App/Cmd/ArgProcessor.pm       2011-08-18 
00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd/ArgProcessor.pm       2012-02-11 
16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::ArgProcessor;
 {
-  $App::Cmd::ArgProcessor::VERSION = '0.312';
+  $App::Cmd::ArgProcessor::VERSION = '0.316';
 }
 # ABSTRACT: App::Cmd-specific wrapper for Getopt::Long::Descriptive
 
@@ -34,7 +34,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 AUTHOR
 
@@ -42,7 +42,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Command/commands.pm 
new/App-Cmd-0.316/lib/App/Cmd/Command/commands.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Command/commands.pm   2011-08-18 
00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Command/commands.pm   2012-02-11 
16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Command::commands;
 {
-  $App::Cmd::Command::commands::VERSION = '0.312';
+  $App::Cmd::Command::commands::VERSION = '0.316';
 }
 use App::Cmd::Command;
 BEGIN { our @ISA = 'App::Cmd::Command' };
@@ -66,7 +66,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 DESCRIPTION
 
@@ -100,7 +100,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Command/help.pm 
new/App-Cmd-0.316/lib/App/Cmd/Command/help.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Command/help.pm       2011-08-18 
00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Command/help.pm       2012-02-11 
16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Command::help;
 {
-  $App::Cmd::Command::help::VERSION = '0.312';
+  $App::Cmd::Command::help::VERSION = '0.316';
 }
 use App::Cmd::Command;
 BEGIN { our @ISA = 'App::Cmd::Command'; }
@@ -67,7 +67,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 DESCRIPTION
 
@@ -81,7 +81,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Command.pm 
new/App-Cmd-0.316/lib/App/Cmd/Command.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Command.pm    2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Command.pm    2012-02-11 16:51:08.000000000 
+0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Command;
 {
-  $App::Cmd::Command::VERSION = '0.312';
+  $App::Cmd::Command::VERSION = '0.316';
 }
 use App::Cmd::ArgProcessor;
 BEGIN { our @ISA = 'App::Cmd::ArgProcessor' };
@@ -103,25 +103,38 @@
   $class = ref $class if ref $class;
 
   my $result;
+  my $weaver_abstract;
 
+  # classname to filename
   (my $pm_file = $class) =~ s!::!/!g;
   $pm_file .= '.pm';
   $pm_file = $INC{$pm_file};
+
+  # if the pm file exists, open it and parse it
   open my $fh, "<", $pm_file or return "(unknown)";
 
   local $/ = "\n";
   my $inpod;
 
   while (local $_ = <$fh>) {
-    $inpod = /^=cut/ ? !$inpod : $inpod || /^=(?!cut)/; # =cut toggles, it 
doesn't end :-/
+    # =cut toggles, it doesn't end :-/
+    $inpod = /^=cut/ ? !$inpod : $inpod || /^=(?!cut)/;
+
+    if (/#+\s*ABSTRACT: (.*)/){
+      # takes ABSTRACT: ... if no POD defined yet
+      $weaver_abstract = $1;
+    }
 
     next unless $inpod;
     chomp;
+
     next unless /^(?:$class\s-\s)(.*)/;
+
     $result = $1;
     last;
   }
-  return $result || "(unknown)";
+
+  return $result || $weaver_abstract || "(unknown)";
 }
 
 
@@ -138,7 +151,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 METHODS
 
@@ -214,8 +227,9 @@
 =head2 abstract
 
 This method returns a short description of the command's purpose.  If this
-method is not overridden, it will return the abstract from the module's POD.
-If it can't find the abstract, it will return the string "(unknown")
+method is not overridden, it will return the abstract from the module's Pod.
+If it can't find the abstract, it will look for a comment starting with
+"ABSTRACT:" like the ones used by L<Pod::Weaver::Section::Name>.
 
 =head2 description
 
@@ -241,7 +255,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Plugin.pm 
new/App-Cmd-0.316/lib/App/Cmd/Plugin.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Plugin.pm     2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Plugin.pm     2012-02-11 16:51:08.000000000 
+0100
@@ -2,7 +2,7 @@
 use warnings;
 package App::Cmd::Plugin;
 {
-  $App::Cmd::Plugin::VERSION = '0.312';
+  $App::Cmd::Plugin::VERSION = '0.316';
 }
 # ABSTRACT: a plugin for App::Cmd commands
 
@@ -26,7 +26,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 AUTHOR
 
@@ -34,7 +34,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Setup.pm 
new/App-Cmd-0.316/lib/App/Cmd/Setup.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Setup.pm      2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Setup.pm      2012-02-11 16:51:08.000000000 
+0100
@@ -2,7 +2,7 @@
 use warnings;
 package App::Cmd::Setup;
 {
-  $App::Cmd::Setup::VERSION = '0.312';
+  $App::Cmd::Setup::VERSION = '0.316';
 }
 # ABSTRACT: helper for setting up App::Cmd classes
 
@@ -149,7 +149,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 OVERVIEW
 
@@ -220,7 +220,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Simple.pm 
new/App-Cmd-0.316/lib/App/Cmd/Simple.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Simple.pm     2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Simple.pm     2012-02-11 16:51:08.000000000 
+0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Simple;
 {
-  $App::Cmd::Simple::VERSION = '0.312';
+  $App::Cmd::Simple::VERSION = '0.316';
 }
 use App::Cmd::Command;
 BEGIN { our @ISA = 'App::Cmd::Command' }
@@ -102,7 +102,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 SYNOPSIS
 
@@ -202,7 +202,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Subdispatch/DashedStyle.pm 
new/App-Cmd-0.316/lib/App/Cmd/Subdispatch/DashedStyle.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Subdispatch/DashedStyle.pm    2011-08-18 
00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Subdispatch/DashedStyle.pm    2012-02-11 
16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Subdispatch::DashedStyle;
 {
-  $App::Cmd::Subdispatch::DashedStyle::VERSION = '0.312';
+  $App::Cmd::Subdispatch::DashedStyle::VERSION = '0.316';
 }
 use App::Cmd::Subdispatch;
 BEGIN { our @ISA = 'App::Cmd::Subdispatch' };
@@ -64,7 +64,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 METHODS
 
@@ -90,7 +90,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Subdispatch.pm 
new/App-Cmd-0.316/lib/App/Cmd/Subdispatch.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Subdispatch.pm        2011-08-18 
00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Subdispatch.pm        2012-02-11 
16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 
 package App::Cmd::Subdispatch;
 {
-  $App::Cmd::Subdispatch::VERSION = '0.312';
+  $App::Cmd::Subdispatch::VERSION = '0.316';
 }
 
 use App::Cmd;
@@ -78,7 +78,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 METHODS
 
@@ -116,7 +116,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Tester/CaptureExternal.pm 
new/App-Cmd-0.316/lib/App/Cmd/Tester/CaptureExternal.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Tester/CaptureExternal.pm     1970-01-01 
01:00:00.000000000 +0100
+++ new/App-Cmd-0.316/lib/App/Cmd/Tester/CaptureExternal.pm     2012-02-11 
16:51:08.000000000 +0100
@@ -0,0 +1,97 @@
+use strict;
+use warnings;
+package App::Cmd::Tester::CaptureExternal;
+{
+  $App::Cmd::Tester::CaptureExternal::VERSION = '0.316';
+}
+
+use parent 'App::Cmd::Tester';
+use Capture::Tiny 0.13 qw/capture/;
+
+# ABSTRACT: Extends App::Cmd::Tester to capture from external subprograms
+
+
+sub _run_with_capture {
+  my ($class, $app, $argv) = @_;
+
+  my $run_rv;
+
+  my ($stdout, $stderr, $ok) = capture {
+    eval {
+      local $App::Cmd::Tester::TEST_IN_PROGRESS = 1;
+      local @ARGV = @$argv;
+      $run_rv = $app->run;
+      1;
+    };
+  };
+
+  my $error = $ok ? undef : $@;
+
+  return {
+    stdout => $stdout,
+    stderr => $stderr,
+    output => $stdout . $stderr,
+    error  => $error,
+    run_rv => $run_rv,
+  };
+}
+
+1;
+
+__END__
+=pod
+
+=head1 NAME
+
+App::Cmd::Tester::CaptureExternal - Extends App::Cmd::Tester to capture from 
external subprograms
+
+=head1 VERSION
+
+version 0.316
+
+=head1 SYNOPSIS
+
+  use Test::More tests => 4;
+  use App::Cmd::Tester::CaptureExternal;
+
+  use YourApp;
+
+  my $result = test_app(YourApp => [ qw(command --opt value) ]);
+
+  like($result->stdout, qr/expected output/, 'printed what we expected');
+
+  is($result->stderr, '', 'nothing sent to sderr');
+
+  ok($result->output, "STDOUT concatenated with STDERR");
+
+=head1 DESCRIPTION
+
+L<App::Cmd::Tester> provides a useful scaffold for testing applications, but it
+is unable to capture output generated from any external subprograms that are
+invoked from the application.
+
+This subclass uses an alternate mechanism for capturing output
+(L<Capture::Tiny>) that does capture from external programs, with one
+major limitation.
+
+It is not possible to capture externally from both STDOUT and STDERR while
+also having appropriately interleaved combined output.  Therefore, the
+C<output> from this subclass simply concatenates the two.
+
+You can still use C<output> for testing if there is any output at all or for
+testing if something appeared in either output stream, but you can't rely on
+the ordering being correct between lines to STDOUT and lines to STDERR.
+
+=head1 AUTHOR
+
+Ricardo Signes <r...@cpan.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2012 by Ricardo Signes.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Tester.pm 
new/App-Cmd-0.316/lib/App/Cmd/Tester.pm
--- old/App-Cmd-0.312/lib/App/Cmd/Tester.pm     2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Tester.pm     2012-02-11 16:51:08.000000000 
+0100
@@ -2,7 +2,7 @@
 use warnings;
 package App::Cmd::Tester;
 {
-  $App::Cmd::Tester::VERSION = '0.312';
+  $App::Cmd::Tester::VERSION = '0.316';
 }
 
 # ABSTRACT: for capturing the result of running an app
@@ -28,6 +28,28 @@
 sub test_app {
   my ($class, $app, $argv) = @_;
 
+  $app = $app->new unless ref($app) or $app->isa('App::Cmd::Simple');
+
+  my $result = $class->_run_with_capture($app, $argv);
+
+  my $error = $result->{error};
+
+  my $exit_code = defined $error ? ((0+$!)||-1) : 0;
+
+  if ($error and eval { $error->isa('App::Cmd::Tester::Exited') }) {
+    $exit_code = $$error;
+  }
+
+  $class->result_class->new({
+    app    => $app,
+    exit_code => $exit_code,
+    %$result,
+  });
+}
+
+sub _run_with_capture {
+  my ($class, $app, $argv) = @_;
+
   require IO::TieCombine;
   my $hub = IO::TieCombine->new;
 
@@ -36,8 +58,6 @@
 
   my $run_rv;
 
-  $app = $app->new unless ref($app) or $app->isa('App::Cmd::Simple');
-
   my $ok = eval {
     local $TEST_IN_PROGRESS = 1;
     local @ARGV = @$argv;
@@ -47,27 +67,19 @@
 
   my $error = $ok ? undef : $@;
 
-  my $exit_code = defined $error ? ((0+$!)||-1) : 0;
-
-  if ($error and eval { $error->isa('App::Cmd::Tester::Exited') }) {
-    $exit_code = $$error;
-  }
-
-  $class->result_class->new({
-    app    => $app,
+  return {
     stdout => $hub->slot_contents('stdout'),
     stderr => $hub->slot_contents('stderr'),
     output => $hub->combined_contents,
     error  => $error,
     run_rv => $run_rv,
-    exit_code => $exit_code
-  });
+  };
 }
 
 {
   package App::Cmd::Tester::Result;
 {
-  $App::Cmd::Tester::Result::VERSION = '0.312';
+  $App::Cmd::Tester::Result::VERSION = '0.316';
 }
 
   sub new {
@@ -86,7 +98,7 @@
 {
   package App::Cmd::Tester::Exited;
 {
-  $App::Cmd::Tester::Exited::VERSION = '0.312';
+  $App::Cmd::Tester::Exited::VERSION = '0.316';
 }
   sub throw {
     my ($class, $code) = @_;
@@ -106,7 +118,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 SYNOPSIS
 
@@ -168,7 +180,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd/Tutorial.pod 
new/App-Cmd-0.316/lib/App/Cmd/Tutorial.pod
--- old/App-Cmd-0.312/lib/App/Cmd/Tutorial.pod  2011-08-18 00:02:40.000000000 
+0200
+++ new/App-Cmd-0.316/lib/App/Cmd/Tutorial.pod  2012-02-11 16:51:08.000000000 
+0100
@@ -13,7 +13,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 DESCRIPTION
 
@@ -179,7 +179,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/lib/App/Cmd.pm 
new/App-Cmd-0.316/lib/App/Cmd.pm
--- old/App-Cmd-0.312/lib/App/Cmd.pm    2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/lib/App/Cmd.pm    2012-02-11 16:51:08.000000000 +0100
@@ -4,7 +4,7 @@
 
 package App::Cmd;
 {
-  $App::Cmd::VERSION = '0.312';
+  $App::Cmd::VERSION = '0.316';
 }
 use App::Cmd::ArgProcessor;
 BEGIN { our @ISA = 'App::Cmd::ArgProcessor' };
@@ -12,7 +12,6 @@
 
 use File::Basename ();
 use Module::Pluggable::Object ();
-use Text::Abbrev ();
 use Class::Load ();
 
 use Sub::Exporter -setup => {
@@ -101,6 +100,7 @@
 
   if ($self->allow_any_unambiguous_abbrev) {
     # add abbreviations to list of authorized commands
+    require Text::Abbrev;
     my %abbrev = Text::Abbrev::abbrev( keys %plugin );
     @plugin{ keys %abbrev } = @plugin{ values %abbrev };
   }
@@ -382,7 +382,7 @@
 
 =head1 VERSION
 
-version 0.312
+version 0.316
 
 =head1 SYNOPSIS
 
@@ -645,7 +645,7 @@
 
 =head1 COPYRIGHT AND LICENSE
 
-This software is copyright (c) 2011 by Ricardo Signes.
+This software is copyright (c) 2012 by Ricardo Signes.
 
 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/t/basic.t new/App-Cmd-0.316/t/basic.t
--- old/App-Cmd-0.312/t/basic.t 2011-08-18 00:02:40.000000000 +0200
+++ new/App-Cmd-0.316/t/basic.t 2012-02-11 16:51:08.000000000 +0100
@@ -3,7 +3,7 @@
 use strict;
 use warnings;
 
-use Test::More tests => 11;
+use Test::More tests => 12;
 use App::Cmd::Tester;
 
 use lib 't/lib';
@@ -16,7 +16,7 @@
 
 is_deeply(
   [ sort $app->command_names ],
-  [ sort qw(help --help -h -? commands exit frob frobulate justusage stock) ],
+  [ sort qw(help --help -h -? commands exit frob frobulate hello justusage 
stock) ],
   "got correct list of registered command names",
 );
 
@@ -27,6 +27,7 @@
     App::Cmd::Command::help
     Test::MyCmd::Command::exit
     Test::MyCmd::Command::frobulate
+    Test::MyCmd::Command::hello
     Test::MyCmd::Command::justusage
     Test::MyCmd::Command::stock
   ) ],
@@ -66,7 +67,7 @@
 
 my $return = test_app('Test::MyCmd', [ qw(commands) ]);
 
-for my $name (qw(commands frobulate justusage stock)) {
+for my $name (qw(commands frobulate hello justusage stock)) {
   like($return->stdout, qr/^\s+\Q$name\E/sm, "$name plugin in listing");
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/t/capture-ext.t 
new/App-Cmd-0.316/t/capture-ext.t
--- old/App-Cmd-0.312/t/capture-ext.t   1970-01-01 01:00:00.000000000 +0100
+++ new/App-Cmd-0.316/t/capture-ext.t   2012-02-11 16:51:08.000000000 +0100
@@ -0,0 +1,20 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+use App::Cmd::Tester::CaptureExternal;
+
+use lib 't/lib';
+
+use Test::MyCmd;
+
+my $app = Test::MyCmd->new;
+
+isa_ok($app, 'Test::MyCmd');
+
+my $return = test_app('Test::MyCmd', [ qw(hello) ]);
+
+like( $return->output, qr/Hello World/, "Captured external subcommand output" 
);
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/App-Cmd-0.312/t/lib/Test/MyCmd/Command/hello.pm 
new/App-Cmd-0.316/t/lib/Test/MyCmd/Command/hello.pm
--- old/App-Cmd-0.312/t/lib/Test/MyCmd/Command/hello.pm 1970-01-01 
01:00:00.000000000 +0100
+++ new/App-Cmd-0.316/t/lib/Test/MyCmd/Command/hello.pm 2012-02-11 
16:51:08.000000000 +0100
@@ -0,0 +1,24 @@
+package Test::MyCmd::Command::hello;
+
+use strict;
+use warnings;
+
+use base qw(App::Cmd::Command);
+
+use IPC::Cmd qw/can_run/;
+
+sub execute {
+  my ($self, $opt, $arg) =@_;
+
+  if ( $^O eq 'MSWin32' ) {
+    system('cmd', '/c', 'echo', "Hello World");
+  }
+  else {
+    my $echo = can_run("echo");
+    $self->usage_error("Program 'echo' not found") unless $echo;
+    system($echo, "Hello World");
+  }
+  return;
+}
+
+1;

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to