The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build.PL 250
CONTRIBUTING 0100
Changes 68
INSTALL 280
LICENSE 06
MANIFEST 1420
MANIFEST.SKIP 340
META.json 091
META.yml 1935
Makefile.PL 1565
README 2831
cpanfile 035
dist.ini 07
inc/Module/Build/WikiDoc.pm 620
lib/Devel/Autoflush.pm 4245
lib/Devel/Autoflush.pod 830
perlcritic.rc 028
t/00-load.t 150
t/00-report-prereqs.t 0179
t/autoflush.t 44
tidyall.ini 05
xt/author/00-compile.t 053
xt/author/critic.t 012
xt/author/pod-spell.t 018
xt/critic.t 90
xt/kwalitee.t 50
xt/perlcriticrc 60
xt/pod-coverage.t 230
xt/pod-format.t 70
xt/release/distmeta.t 06
xt/release/minimum-version.t 08
xt/release/pod-coverage.t 07
xt/release/pod-syntax.t 06
xt/release/portability.t 012
xt/release/test-version.t 022
35 files changed (This is a version diff) 425803
@@ -1,25 +0,0 @@
-use strict;
-use lib 'inc';
-eval "require Pod::WikiDoc";
-my $class = $@ ? "Module::Build" : "Module::Build::WikiDoc";
-eval "require $class";
-$class->new( 
-    module_name         => 'Devel::Autoflush',
-    dist_author         => 'David A. Golden <dagolden@cpan.org>',
-    license             => 'apache',
-    create_readme       => 1,
-    create_makefile_pl  => 'traditional',
-    requires        => {
-      perl      => 5.004,
-    },
-    build_requires  => {
-      'IO::CaptureOutput' => 1.08,
-      'Test::More' => 0.62,
-    },
-    meta_add            => { 
-        no_index => { 
-            directory => [ qw{ examples inc } ],
-        } 
-    },
-)->create_build_script;
-
@@ -0,0 +1,100 @@
+## HOW TO CONTRIBUTE
+
+Thank you for considering contributing to this distribution.  This file
+contains instructions that will help you work with the source code.
+
+The distribution is managed with Dist::Zilla.  This means than many of the
+usual files you might expect are not in the repository, but are generated at
+release time (e.g. Makefile.PL).
+
+Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
+Dist::Zilla to create a tarball and/or install from the repository.  See below
+for guidance.
+
+### Getting dependencies
+
+See the included `cpanfile` file for a list of dependencies.  If you have
+App::cpanminus 1.6 or later installed, you can use `cpanm` to satisfy
+dependencies like this:
+
+    $ cpanm --installdeps .
+
+Otherwise, you can install Module::CPANfile 1.0002 or later and then satisfy
+dependencies with the regular `cpan` client and `cpanfile-dump`:
+
+    $ cpan `cpanfile-dump`
+
+### Running tests
+
+You can run tests directly using the `prove` tool:
+
+    $ prove -l
+    $ prove -lv t/some_test_file.t
+
+For most of my distributions, `prove` is entirely sufficient for you to test any
+patches you have. I use `prove` for 99% of my testing during development.
+
+### Code style and tidying
+
+Please try to match any existing coding style.  If there is a `.perltidyrc`
+file, please install Perl::Tidy and use perltidy before submitting patches.
+
+If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
+`tidyall` on a file or `tidyall -a` to tidy all files.
+
+### Patching documentation
+
+Much of the documentation Pod is generated at release time.  Depending on the
+distribution, some of my documentation may be written in a Pod dialect called
+WikiDoc. (See Pod::WikiDoc on CPAN.)
+
+If you would like to submit a documentation edit, please limit yourself to the
+documentation you see.
+
+If you see typos or documentation issues in the generated docs, please
+email or open a bug ticket instead of patching.
+
+### Installing from the repository
+
+If you want to install directly from the repository, you need to have
+Dist::Zilla installed (see below).  If this is a burden to you, I welcome
+patches against a CPAN tarball instead of the repository.
+
+### Installing and using Dist::Zilla
+
+Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
+large number of distributions with a high degree of automation, but it has a
+large dependency chain, a bit of a learning curve and requires a number of
+author-specific plugins.
+
+To install it from CPAN, I recommend one of the following approaches for
+the quickest installation:
+
+    # using CPAN.pm, but bypassing non-functional pod tests
+    $ cpan TAP::Harness::Restricted
+    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
+
+    # using cpanm, bypassing *all* tests
+    $ cpanm -n Dist::Zilla
+
+In either case, it's probably going to take about 10 minutes.  Go for a walk,
+go get a cup of your favorite beverage, take a bathroom break, or whatever.
+When you get back, Dist::Zilla should be ready for you.
+
+Then you need to install any plugins specific to this distribution:
+
+    $ cpan `dzil authordeps`
+    $ dzil authordeps | cpanm
+
+Once installed, here are some dzil commands you might try:
+
+    $ dzil build
+    $ dzil test
+    $ dzil xtest
+
+To install from the repository, use:
+
+    $ dzil install
+
+You can learn more about Dist::Zilla at http://dzil.org/
+
@@ -1,11 +1,13 @@
-# Copyright (c) 2008 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
 Revision history for Devel-Autoflush
 
+0.06      2014-02-26 19:31:45-05:00 America/New_York
+
+    [CHANGED]
+
+    - Updated distribution metadata, repo and bugtracker
+
+    - Switch to managing with Dist::Zilla
+
 0.05 Mon Feb 23 06:53:45 EST 2009
     - Vanity fix: fool CPANTS about 'use strict' since *by design* this 
       module *must not* use strict as older stricts had side effects
@@ -1,28 +0,0 @@
-# Copyright (c) 2008 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
-INSTALLATION 
-
-This distribution may be installed via one of the following
-methods:
-
-
-1. If Build.PL exists and Module::Build is installed:
-
-    perl Build.PL
-    perl Build
-    perl Build test
-    perl Build install
-
-2. If Makefile.PL exists:
-
-    perl Makefile.PL
-    make
-    make test
-    make install
-
-If you are on a Windows machine you should use 
-'nmake' or 'dmake' rather than 'make'.
@@ -1,3 +1,9 @@
+This software is Copyright (c) 2014 by David Golden.
+
+This is free software, licensed under:
+
+  The Apache License, Version 2.0, January 2004
+
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
@@ -1,20 +1,26 @@
-Build.PL
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.013.
+CONTRIBUTING
 Changes
-inc/Module/Build/WikiDoc.pm
-INSTALL
-lib/Devel/Autoflush.pm
-lib/Devel/Autoflush.pod
 LICENSE
-Makefile.PL
 MANIFEST
-MANIFEST.SKIP
+META.json
 META.yml
+Makefile.PL
 README
-t/00-load.t
-t/autoflush.t
 Todo
-xt/critic.t
-xt/kwalitee.t
-xt/perlcriticrc
-xt/pod-coverage.t
-xt/pod-format.t
+cpanfile
+dist.ini
+lib/Devel/Autoflush.pm
+perlcritic.rc
+t/00-report-prereqs.t
+t/autoflush.t
+tidyall.ini
+xt/author/00-compile.t
+xt/author/critic.t
+xt/author/pod-spell.t
+xt/release/distmeta.t
+xt/release/minimum-version.t
+xt/release/pod-coverage.t
+xt/release/pod-syntax.t
+xt/release/portability.t
+xt/release/test-version.t
@@ -1,34 +0,0 @@
-# Copyright (c) 2008 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
-# Version control files and dirs.
-\bRCS\b
-\bCVS\b
-,v$
-.svn/
-^.git
-
-# Generated by Perl module toolchain
-^MANIFEST\.(?!SKIP)
-^Makefile$
-^blib/
-^blibdirs$
-^PM_to_blib$
-^MakeMaker-\d
-^Build$
-^_build
-^cover_db
-^.*\.bat$
-
-# Temp, old, vi and emacs files.
-~$
-\.old$
-\#\.*\#$
-\.\#$
-\.swp$
-\.bak$
-^pod.*\.tmp$
-Debian_CPANTS.txt
@@ -0,0 +1,91 @@
+{
+   "abstract" : "Set autoflush from the command line",
+   "author" : [
+      "David Golden <dagolden@cpan.org>"
+   ],
+   "dynamic_config" : 0,
+   "generated_by" : "Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380",
+   "license" : [
+      "apache_2_0"
+   ],
+   "meta-spec" : {
+      "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+      "version" : "2"
+   },
+   "name" : "Devel-Autoflush",
+   "no_index" : {
+      "directory" : [
+         "t",
+         "xt",
+         "examples",
+         "corpus"
+      ],
+      "package" : [
+         "DB"
+      ]
+   },
+   "prereqs" : {
+      "configure" : {
+         "requires" : {
+            "ExtUtils::MakeMaker" : "6.17"
+         }
+      },
+      "develop" : {
+         "requires" : {
+            "Dist::Zilla" : "5.013",
+            "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.060",
+            "File::Spec" : "0",
+            "File::Temp" : "0",
+            "IO::Handle" : "0",
+            "IPC::Open3" : "0",
+            "Pod::Coverage::TrustPod" : "0",
+            "Test::CPAN::Meta" : "0",
+            "Test::More" : "0",
+            "Test::Pod" : "1.41",
+            "Test::Pod::Coverage" : "1.08"
+         }
+      },
+      "runtime" : {
+         "requires" : {
+            "perl" : "5.006"
+         }
+      },
+      "test" : {
+         "recommends" : {
+            "CPAN::Meta" : "0",
+            "CPAN::Meta::Requirements" : "2.120900"
+         },
+         "requires" : {
+            "ExtUtils::MakeMaker" : "0",
+            "File::Spec::Functions" : "0",
+            "IO::CaptureOutput" : "1.08",
+            "List::Util" : "0",
+            "Test::More" : "0",
+            "strict" : "0",
+            "version" : "0",
+            "warnings" : "0"
+         }
+      }
+   },
+   "provides" : {
+      "Devel::Autoflush" : {
+         "file" : "lib/Devel/Autoflush.pm",
+         "version" : "0.06"
+      }
+   },
+   "release_status" : "stable",
+   "resources" : {
+      "bugtracker" : {
+         "web" : "https://github.com/dagolden/Devel-Autoflush/issues"
+      },
+      "homepage" : "https://github.com/dagolden/Devel-Autoflush",
+      "repository" : {
+         "type" : "git",
+         "url" : "https://github.com/dagolden/Devel-Autoflush.git",
+         "web" : "https://github.com/dagolden/Devel-Autoflush"
+      }
+   },
+   "version" : "0.06",
+   "x_authority" : "cpan:DAGOLDEN"
+}
+
@@ -1,26 +1,42 @@
 ---
-name: Devel-Autoflush
-version: 0.05
+abstract: 'Set autoflush from the command line'
 author:
-  - 'David A. Golden <dagolden@cpan.org>'
-abstract: Set autoflush from the command line
-license: apache
-resources:
-  license: http://www.apache.org/licenses/LICENSE-2.0.txt
-requires:
-  perl: 5.004
+  - 'David Golden <dagolden@cpan.org>'
 build_requires:
-  IO::CaptureOutput: 1.08
-  Test::More: 0.62
-provides:
-  Devel::Autoflush:
-    file: lib/Devel/Autoflush.pm
-    version: 0.05
-generated_by: Module::Build version 0.3103
+  ExtUtils::MakeMaker: '0'
+  File::Spec::Functions: '0'
+  IO::CaptureOutput: '1.08'
+  List::Util: '0'
+  Test::More: '0'
+  strict: '0'
+  version: '0'
+  warnings: '0'
+configure_requires:
+  ExtUtils::MakeMaker: '6.17'
+dynamic_config: 0
+generated_by: 'Dist::Zilla version 5.013, CPAN::Meta::Converter version 2.133380'
+license: apache
 meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.2.html
-  version: 1.2
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html
+  version: '1.4'
+name: Devel-Autoflush
 no_index:
   directory:
+    - t
+    - xt
     - examples
-    - inc
+    - corpus
+  package:
+    - DB
+provides:
+  Devel::Autoflush:
+    file: lib/Devel/Autoflush.pm
+    version: '0.06'
+requires:
+  perl: '5.006'
+resources:
+  bugtracker: https://github.com/dagolden/Devel-Autoflush/issues
+  homepage: https://github.com/dagolden/Devel-Autoflush
+  repository: https://github.com/dagolden/Devel-Autoflush.git
+version: '0.06'
+x_authority: cpan:DAGOLDEN
@@ -1,15 +1,65 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.31_03
-require 5.004;
-use ExtUtils::MakeMaker;
-WriteMakefile
-(
-          'INSTALLDIRS' => 'site',
-          'NAME' => 'Devel::Autoflush',
-          'EXE_FILES' => [],
-          'VERSION_FROM' => 'lib/Devel/Autoflush.pm',
-          'PREREQ_PM' => {
-                           'Test::More' => '0.62',
-                           'IO::CaptureOutput' => '1.08'
-                         }
-        )
-;
+
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.013.
+use strict;
+use warnings;
+
+use 5.006;
+
+use ExtUtils::MakeMaker 6.17;
+
+
+
+my %WriteMakefileArgs = (
+  "ABSTRACT" => "Set autoflush from the command line",
+  "AUTHOR" => "David Golden <dagolden\@cpan.org>",
+  "BUILD_REQUIRES" => {},
+  "CONFIGURE_REQUIRES" => {
+    "ExtUtils::MakeMaker" => "6.17"
+  },
+  "DISTNAME" => "Devel-Autoflush",
+  "EXE_FILES" => [],
+  "LICENSE" => "apache",
+  "NAME" => "Devel::Autoflush",
+  "PREREQ_PM" => {},
+  "TEST_REQUIRES" => {
+    "ExtUtils::MakeMaker" => 0,
+    "File::Spec::Functions" => 0,
+    "IO::CaptureOutput" => "1.08",
+    "List::Util" => 0,
+    "Test::More" => 0,
+    "strict" => 0,
+    "version" => 0,
+    "warnings" => 0
+  },
+  "VERSION" => "0.06",
+  "test" => {
+    "TESTS" => "t/*.t"
+  }
+);
+
+
+my %FallbackPrereqs = (
+  "ExtUtils::MakeMaker" => 0,
+  "File::Spec::Functions" => 0,
+  "IO::CaptureOutput" => "1.08",
+  "List::Util" => 0,
+  "Test::More" => 0,
+  "strict" => 0,
+  "version" => 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}
+  unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+
+
@@ -2,10 +2,10 @@ NAME
     Devel::Autoflush - Set autoflush from the command line
 
 VERSION
-    This documentation describes version 0.05.
+    version 0.06
 
 SYNOPSIS
-      perl -MDevel::Autoflush Makefile.PL
+     perl -MDevel::Autoflush Makefile.PL
 
 DESCRIPTION
     This module is a hack to set autoflush for STDOUT and STDERR from the
@@ -14,9 +14,9 @@ DESCRIPTION
 
     This often happens when prompting:
 
-       # guess.pl
-       print "Guess a number: ";
-       my $n = <STDIN>;
+      # guess.pl
+      print "Guess a number: ";
+      my $n = <STDIN>;
 
     As long as the output is going to a terminal, the prompt is flushed when
     STDIN is read. However, if the output is being piped, the print
@@ -24,42 +24,45 @@ DESCRIPTION
     the program will silently appear to hang while waiting for input. This
     might happen with 'tee':
 
-       $ perl guess.pl | tee capture.out
+      $ perl guess.pl | tee capture.out
 
     Use Devel::Autoflush to work around this:
 
-       $ perl -MDevel::Autoflush guess.pl | tee capture.out
+      $ perl -MDevel::Autoflush guess.pl | tee capture.out
 
     Or set it in "PERL5OPT":
 
-       $ export PERL5OPT=-MDevel::Autoflush
-       $ perl guess.pl | tee capture.out
+      $ export PERL5OPT=-MDevel::Autoflush
+      $ perl guess.pl | tee capture.out
 
-BUGS
-    Please report any bugs or feature using the CPAN Request Tracker. Bugs
-    can be submitted through the web interface at
-    <http://rt.cpan.org/Dist/Display.html?Queue=Devel-Autoflush>
+    = SEE ALSO
 
-    When submitting a bug or request, please include a test-file or a patch
-    to an existing test-file that illustrates the bug or desired feature.
-
-SEE ALSO
     *   CPANPLUS::Internals::Utils::Autoflush -- same idea but STDOUT only
-        and only available as part of the full CPANPLUS distribution
+        and
+
+        only available as part of the full CPANPLUS distribution
+
+SUPPORT
+  Bugs / Feature Requests
+    Please report any bugs or feature requests through the issue tracker at
+    <https://github.com/dagolden/Devel-Autoflush/issues>. You will be
+    notified automatically of any progress on your issue.
+
+  Source Code
+    This is open source software. The code repository is available for
+    public review and contribution under the terms of the license.
+
+    <https://github.com/dagolden/Devel-Autoflush>
+
+      git clone https://github.com/dagolden/Devel-Autoflush.git
 
 AUTHOR
-    David A. Golden (DAGOLDEN)
+    David Golden <dagolden@cpan.org>
 
 COPYRIGHT AND LICENSE
-    Copyright (c) 2008-2009 by David A. Golden
+    This software is Copyright (c) 2014 by David Golden.
 
-    Licensed under the Apache License, Version 2.0 (the "License"); you may
-    not use this file except in compliance with the License. You may obtain
-    a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
+    This is free software, licensed under:
 
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
+      The Apache License, Version 2.0, January 2004
 
@@ -0,0 +1,35 @@
+requires "perl" => "5.006";
+
+on 'test' => sub {
+  requires "ExtUtils::MakeMaker" => "0";
+  requires "File::Spec::Functions" => "0";
+  requires "IO::CaptureOutput" => "1.08";
+  requires "List::Util" => "0";
+  requires "Test::More" => "0";
+  requires "strict" => "0";
+  requires "version" => "0";
+  requires "warnings" => "0";
+};
+
+on 'test' => sub {
+  recommends "CPAN::Meta" => "0";
+  recommends "CPAN::Meta::Requirements" => "2.120900";
+};
+
+on 'configure' => sub {
+  requires "ExtUtils::MakeMaker" => "6.17";
+};
+
+on 'develop' => sub {
+  requires "Dist::Zilla" => "5.013";
+  requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.060";
+  requires "File::Spec" => "0";
+  requires "File::Temp" => "0";
+  requires "IO::Handle" => "0";
+  requires "IPC::Open3" => "0";
+  requires "Pod::Coverage::TrustPod" => "0";
+  requires "Test::CPAN::Meta" => "0";
+  requires "Test::More" => "0";
+  requires "Test::Pod" => "1.41";
+  requires "Test::Pod::Coverage" => "1.08";
+};
@@ -0,0 +1,7 @@
+name = Devel-Autoflush
+author = David Golden <dagolden@cpan.org>
+license = Apache_2_0
+copyright_holder = David Golden
+
+[@DAGOLDEN]
+:version = 0.060
@@ -1,62 +0,0 @@
-# Copyright (c) 2008 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
-package Module::Build::WikiDoc;
-use strict;
-use base qw/Module::Build/;
-use File::Spec;
-
-sub ACTION_wikidoc {
-    my $self = shift;
-    eval "use Pod::WikiDoc";
-    if ( $@ eq '' ) {
-        my $parser = Pod::WikiDoc->new({ 
-            comment_blocks => 1,
-            keywords => { VERSION => $self->dist_version },
-        });
-        for my $src ( keys %{ $self->find_pm_files() } ) {
-            (my $tgt = $src) =~ s{\.pm$}{.pod};
-            $parser->filter( {
-                input   => $src,
-                output  => $tgt,
-            });
-            print "Creating $tgt\n";
-            $tgt =~ s{\\}{/}g;
-            $self->_add_to_manifest( 'MANIFEST', $tgt );
-        }
-    }
-    else {
-        warn "Pod::WikiDoc not available. Skipping wikidoc.\n";
-    }
-}
-
-sub ACTION_test {
-    my $self = shift;
-    my $missing_pod;
-    for my $src ( keys %{ $self->find_pm_files() } ) {
-        (my $tgt = $src) =~ s{\.pm$}{.pod};
-        $missing_pod = 1 if ! -e $tgt;
-    }
-    if ( $missing_pod ) {
-        $self->depends_on('wikidoc');
-        $self->depends_on('build');
-    }
-    $self->SUPER::ACTION_test;
-}
-
-sub ACTION_testpod {
-    my $self = shift;
-    $self->depends_on('wikidoc');
-    $self->SUPER::ACTION_testpod;
-}
-
-sub ACTION_distmeta {
-    my $self = shift;
-    $self->depends_on('wikidoc');
-    $self->SUPER::ACTION_distmeta;
-}
-
-1;
@@ -1,47 +1,42 @@
-# Copyright (c) 2008-2009 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
 package Devel::Autoflush;
-$Devel::Autoflush::VERSION = '0.05';
+# ABSTRACT: Set autoflush from the command line
+our $VERSION = '0.06'; # VERSION
 
 my $kwalitee_nocritic = << 'END';
 # can't use strict as older stricts load Carp and we can't allow side effects
 use strict;  
 END
 
-my $old = select STDOUT; $|++;
-select STDERR; $|++;
+my $old = select STDOUT;
+$|++;
+select STDERR;
+$|++;
 select $old;
 
 1;
 
 __END__
 
-#--------------------------------------------------------------------------#
-# pod documentation 
-#--------------------------------------------------------------------------#
+=pod
 
-=begin wikidoc
+=encoding UTF-8
 
-= NAME
+=head1 NAME
 
 Devel::Autoflush - Set autoflush from the command line
 
-= VERSION
+=head1 VERSION
 
-This documentation describes version %%VERSION%%.
+version 0.06
 
-= SYNOPSIS
+=head1 SYNOPSIS
 
  perl -MDevel::Autoflush Makefile.PL
 
-= DESCRIPTION
+=head1 DESCRIPTION
 
 This module is a hack to set autoflush for STDOUT and STDERR from the command
-line or from {PERL5OPT} for code that needs it but doesn't have it.
+line or from C<PERL5OPT> for code that needs it but doesn't have it.
 
 This often happens when prompting:
 
@@ -60,44 +55,52 @@ Use Devel::Autoflush to work around this:
 
   $ perl -MDevel::Autoflush guess.pl | tee capture.out
 
-Or set it in {PERL5OPT}:
+Or set it in C<PERL5OPT>:
 
   $ export PERL5OPT=-MDevel::Autoflush
   $ perl guess.pl | tee capture.out
 
-= BUGS
+= SEE ALSO
 
-Please report any bugs or feature using the CPAN Request Tracker.  
-Bugs can be submitted through the web interface at 
-[http://rt.cpan.org/Dist/Display.html?Queue=Devel-Autoflush]
+=over 4
 
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
+=item *
 
-= SEE ALSO
+L<CPANPLUS::Internals::Utils::Autoflush> -- same idea but STDOUT only and 
 
-* [CPANPLUS::Internals::Utils::Autoflush] -- same idea but STDOUT only and 
 only available as part of the full CPANPLUS distribution
 
-= AUTHOR
+=back
+
+=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
+
+=head1 SUPPORT
+
+=head2 Bugs / Feature Requests
+
+Please report any bugs or feature requests through the issue tracker
+at L<https://github.com/dagolden/Devel-Autoflush/issues>.
+You will be notified automatically of any progress on your issue.
+
+=head2 Source Code
+
+This is open source software.  The code repository is available for
+public review and contribution under the terms of the license.
+
+L<https://github.com/dagolden/Devel-Autoflush>
+
+  git clone https://github.com/dagolden/Devel-Autoflush.git
 
-David A. Golden (DAGOLDEN)
+=head1 AUTHOR
 
-= COPYRIGHT AND LICENSE
+David Golden <dagolden@cpan.org>
 
-Copyright (c) 2008-2009 by David A. Golden
+=head1 COPYRIGHT AND LICENSE
 
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at 
-[http://www.apache.org/licenses/LICENSE-2.0]
+This software is Copyright (c) 2014 by David Golden.
 
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
+This is free software, licensed under:
 
-=end wikidoc
+  The Apache License, Version 2.0, January 2004
 
 =cut
@@ -1,83 +0,0 @@
-# Generated by Pod::WikiDoc version 0.18
-
-=pod
-
-=head1 NAME
-
-Devel::Autoflush - Set autoflush from the command line
-
-=head1 VERSION
-
-This documentation describes version 0.05.
-
-=head1 SYNOPSIS
-
-  perl -MDevel::Autoflush Makefile.PL
-
-=head1 DESCRIPTION
-
-This module is a hack to set autoflush for STDOUT and STDERR from the command
-line or from C<<< PERL5OPT >>> for code that needs it but doesn't have it.
-
-This often happens when prompting:
-
-   # guess.pl
-   print "Guess a number: ";
-   my $n = <STDIN>;
-
-As long as the output is going to a terminal, the prompt is flushed when STDIN
-is read.  However, if the output is being piped, the print statement will 
-not automatically be flushed, no prompt will be seen and the program will
-silently appear to hang while waiting for input.  This might happen with 'tee':
-
-   $ perl guess.pl | tee capture.out
-
-Use Devel::Autoflush to work around this:
-
-   $ perl -MDevel::Autoflush guess.pl | tee capture.out
-
-Or set it in C<<< PERL5OPT >>>:
-
-   $ export PERL5OPT=-MDevel::Autoflush
-   $ perl guess.pl | tee capture.out
-
-=head1 BUGS
-
-Please report any bugs or feature using the CPAN Request Tracker.  
-Bugs can be submitted through the web interface at 
-L<http://rt.cpan.org/Dist/Display.html?Queue=Devel-Autoflush>
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-=head1 SEE ALSO
-
-=over
-
-=item *
-
-L<CPANPLUS::Internals::Utils::Autoflush> -- same idea but STDOUT only and 
-only available as part of the full CPANPLUS distribution
-
-=back
-
-=head1 AUTHOR
-
-David A. Golden (DAGOLDEN)
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (c) 2008-2009 by David A. Golden
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at 
-L<http://www.apache.org/licenses/LICENSE-2.0>
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
@@ -0,0 +1,28 @@
+severity = 5
+verbose = 8
+
+[-TestingAndDebugging::RequireUseStrict]
+
+[Variables::ProhibitPunctuationVars]
+allow = $@ $!
+
+[TestingAndDebugging::ProhibitNoStrict]
+allow = refs
+
+[Variables::ProhibitEvilVariables]
+variables = $DB::single
+
+# Turn these off
+[-BuiltinFunctions::ProhibitStringyEval]
+[-ControlStructures::ProhibitPostfixControls]
+[-ControlStructures::ProhibitUnlessBlocks]
+[-Documentation::RequirePodSections]
+[-InputOutput::ProhibitInteractiveTest]
+[-References::ProhibitDoubleSigils]
+[-RegularExpressions::RequireExtendedFormatting]
+[-InputOutput::ProhibitTwoArgOpen]
+[-Modules::ProhibitEvilModules]
+
+# Turn this on
+[Lax::ProhibitStringyEval::ExceptForRequire]
+
@@ -1,15 +0,0 @@
-# Copyright (c) 2008 by David Golden. All rights reserved.
-# Licensed under Apache License, Version 2.0 (the "License").
-# You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
-# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
-
-use strict;
-use warnings;
-
-use Test::More;
-
-plan tests => 1;
-
-require_ok( 'Devel::Autoflush' );
-
@@ -0,0 +1,179 @@
+#!perl
+
+use strict;
+use warnings;
+
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+
+use Test::More tests => 1;
+
+use ExtUtils::MakeMaker;
+use File::Spec::Functions;
+use List::Util qw/max/;
+use version;
+
+# hide optional CPAN::Meta modules from prereq scanner
+# and check if they are available
+my $cpan_meta = "CPAN::Meta";
+my $cpan_meta_req = "CPAN::Meta::Requirements";
+my $HAS_CPAN_META = eval "require $cpan_meta"; ## no critic
+my $HAS_CPAN_META_REQ = eval "require $cpan_meta_req; $cpan_meta_req->VERSION('2.120900')";
+
+# Verify requirements?
+my $DO_VERIFY_PREREQS = 1;
+
+sub _merge_requires {
+    my ($collector, $prereqs) = @_;
+    for my $phase ( qw/configure build test runtime develop/ ) {
+        next unless exists $prereqs->{$phase};
+        if ( my $req = $prereqs->{$phase}{'requires'} ) {
+            my $cmr = CPAN::Meta::Requirements->from_string_hash( $req );
+            $collector->add_requirements( $cmr );
+        }
+    }
+}
+
+my %include = map {; $_ => 1 } qw(
+
+);
+
+my %exclude = map {; $_ => 1 } qw(
+
+);
+
+# Add static prereqs to the included modules list
+my $static_prereqs = do { my $x = {
+       'configure' => {
+                        'requires' => {
+                                        'ExtUtils::MakeMaker' => '6.17'
+                                      }
+                      },
+       'develop' => {
+                      'requires' => {
+                                      'Dist::Zilla' => '5.013',
+                                      'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.060',
+                                      'File::Spec' => '0',
+                                      'File::Temp' => '0',
+                                      'IO::Handle' => '0',
+                                      'IPC::Open3' => '0',
+                                      'Pod::Coverage::TrustPod' => '0',
+                                      'Test::CPAN::Meta' => '0',
+                                      'Test::More' => '0',
+                                      'Test::Pod' => '1.41',
+                                      'Test::Pod::Coverage' => '1.08'
+                                    }
+                    },
+       'runtime' => {
+                      'requires' => {
+                                      'perl' => '5.006'
+                                    }
+                    },
+       'test' => {
+                   'recommends' => {
+                                     'CPAN::Meta' => '0',
+                                     'CPAN::Meta::Requirements' => '2.120900'
+                                   },
+                   'requires' => {
+                                   'ExtUtils::MakeMaker' => '0',
+                                   'File::Spec::Functions' => '0',
+                                   'IO::CaptureOutput' => '1.08',
+                                   'List::Util' => '0',
+                                   'Test::More' => '0',
+                                   'strict' => '0',
+                                   'version' => '0',
+                                   'warnings' => '0'
+                                 }
+                 }
+     };
+  $x;
+ };
+
+delete $static_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
+$include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$static_prereqs;
+
+# Merge requirements for major phases (if we can)
+my $all_requires;
+if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
+    $all_requires = $cpan_meta_req->new;
+    _merge_requires($all_requires, $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) } ) {
+    my $dynamic_prereqs = $meta->prereqs;
+    delete $dynamic_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
+    $include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$dynamic_prereqs;
+
+    if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
+        _merge_requires($all_requires, $dynamic_prereqs);
+    }
+  }
+}
+else {
+  $source = 'static metadata';
+}
+
+my @modules = sort grep { ! $exclude{$_} } keys %include;
+my @reports = [qw/Version Module/];
+my @dep_errors;
+my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
+
+for my $mod ( @modules ) {
+  next if $mod eq 'perl';
+  my $file = $mod;
+  $file =~ s{::}{/}g;
+  $file .= ".pm";
+  my ($prefix) = grep { -e catfile($_, $file) } @INC;
+  if ( $prefix ) {
+    my $ver = MM->parse_version( catfile($prefix, $file) );
+    $ver = "undef" unless defined $ver; # Newer MM should do this anyway
+    push @reports, [$ver, $mod];
+
+    if ( $DO_VERIFY_PREREQS && $all_requires ) {
+      my $req = $req_hash->{$mod};
+      if ( defined $req && length $req ) {
+        if ( ! defined eval { version->parse($ver) } ) {
+          push @dep_errors, "$mod version '$ver' cannot be parsed (version '$req' required)";
+        }
+        elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
+          push @dep_errors, "$mod version '$ver' is not in required range '$req'";
+        }
+      }
+    }
+
+  }
+  else {
+    push @reports, ["missing", $mod];
+
+    if ( $DO_VERIFY_PREREQS && $all_requires ) {
+      my $req = $req_hash->{$mod};
+      if ( defined $req && length $req ) {
+        push @dep_errors, "$mod is not installed (version '$req' required)";
+      }
+    }
+  }
+}
+
+if ( @reports ) {
+  my $vl = max map { length $_->[0] } @reports;
+  my $ml = max map { length $_->[1] } @reports;
+  splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
+  diag "\nVersions for all modules listed in $source (including optional ones):\n",
+    map {sprintf("  %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @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:
@@ -1,20 +1,20 @@
 # Copyright (c) 2008 by David Golden. All rights reserved.
 # Licensed under Apache License, Version 2.0 (the "License").
 # You may not use this file except in compliance with the License.
-# A copy of the License was distributed with this file or you may obtain a 
+# A copy of the License was distributed with this file or you may obtain a
 # copy of the License from http://www.apache.org/licenses/LICENSE-2.0
 
 use strict;
 use warnings;
 
 use Test::More;
-use IO::CaptureOutput qw/qxx/;
+use IO::CaptureOutput 1.08 qw/qxx/;
 
 plan tests => 1;
 
-$ENV{PERL5OPT}='-MDevel::Autoflush';
+$ENV{PERL5OPT} = '-MDevel::Autoflush';
 
-my ($stdout, $stderr) = qxx($^X, '-we', 'print $| ? 1 : 0,  "\n"');
+my ( $stdout, $stderr ) = qxx( $^X, '-we', 'print $| ? 1 : 0,  "\n"' );
 chomp($stdout);
 is( $stdout, 1, "autoflush was set" ) or diag "STDERR: $stderr";
 
@@ -0,0 +1,5 @@
+; Install Code::TidyAll
+; run "tidyall -a" to tidy all files
+; run "tidyall -g" to tidy only files modified from git
+[PerlTidy]
+select = {lib,t}/**/*.{pl,pm,t}
@@ -0,0 +1,53 @@
+use 5.006;
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
+
+use Test::More  tests => 1 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
+
+
+
+my @module_files = (
+    'Devel/Autoflush.pm'
+);
+
+
+
+# fake home for cpan-testers
+use File::Temp;
+local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
+
+
+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') if $ENV{AUTHOR_TESTING};
+
+
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+use English qw(-no_match_vars);
+
+eval "use Test::Perl::Critic";
+plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
+Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
+all_critic_ok();
@@ -0,0 +1,18 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006005
+use Test::Spelling 0.12;
+use Pod::Wordlist;
+
+
+add_stopwords(<DATA>);
+all_pod_files_spelling_ok( qw( bin lib  ) );
+__DATA__
+David
+Golden
+dagolden
+lib
+Devel
+Autoflush
@@ -1,9 +0,0 @@
-use strict;
-use warnings;
-use File::Spec;
-use Test::More;
-require Test::Perl::Critic;
-
-my $rcfile = File::Spec->catfile( 'xt', 'perlcriticrc' );
-Test::Perl::Critic->import( -profile => $rcfile );
-all_critic_ok( 'lib' );
@@ -1,5 +0,0 @@
-use strict;
-use Test::Kwalitee;
-# remove cruft
-unlink 'Debian_CPANTS.txt'; 
-unlink 'Makefile'; 
@@ -1,6 +0,0 @@
-severity = 5
-verbose = 8
-
-exclude = ProhibitStringyEval RequireUseWarnings ProhibitConstantPragma 
-exclude = RequireUseStrict
-include = Lax::ProhibitStringyEvalExceptForRequire
@@ -1,23 +0,0 @@
-use Test::More;
-
-my $min_tpc = 1.08;
-eval "use Test::Pod::Coverage $min_tpc";
-plan skip_all => "Test::Pod::Coverage $min_tpc required for testing POD coverage"
-    if $@;
-
-my $min_pc = 0.17;
-eval "use Pod::Coverage $min_pc";
-plan skip_all => "Pod::Coverage $min_pc required for testing POD coverage"
-    if $@;
-
-my @modules = all_modules('lib');
-
-plan tests => scalar @modules; 
-
-for my $mod ( @modules ) {
-    my $doc = "lib/$mod";
-    $doc =~ s{::}{/}g;
-    $doc = -f "$doc\.pod" ? "$doc\.pod" : "$doc\.pm" ;
-    pod_coverage_ok( $mod, { pod_from => $doc } );
-}
-
@@ -1,7 +0,0 @@
-use Test::More;
-
-my $min_tp = 1.22;
-eval "use Test::Pod $min_tp";
-plan skip_all => "Test::Pod $min_tp required for testing POD" if $@;
-
-all_pod_files_ok();
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
+
+use Test::CPAN::Meta;
+
+meta_yaml_ok();
@@ -0,0 +1,8 @@
+#!perl
+
+use Test::More;
+
+eval "use Test::MinimumVersion";
+plan skip_all => "Test::MinimumVersion required for testing minimum versions"
+  if $@;
+all_minimum_version_ok( qq{5.010} );
@@ -0,0 +1,7 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
+
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
+
+all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -0,0 +1,6 @@
+#!perl
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
+use Test::More;
+use Test::Pod 1.41;
+
+all_pod_files_ok();
@@ -0,0 +1,12 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+eval 'use Test::Portability::Files';
+plan skip_all => 'Test::Portability::Files required for testing portability'
+    if $@;
+options(test_one_dot => 0);
+run_tests();
@@ -0,0 +1,22 @@
+use strict;
+use warnings;
+use Test::More;
+
+# generated by Dist::Zilla::Plugin::Test::Version 0.002004
+BEGIN { eval "use Test::Version; 1;" or die $@; }
+
+my @imports = ( 'version_all_ok' );
+
+my $params = {
+    is_strict   => 0,
+    has_version => 1,
+};
+
+push @imports, $params
+    if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
+
+
+Test::Version->import(@imports);
+
+version_all_ok;
+done_testing;