This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update File-Fetch to CPAN version 0.32
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 17 Jan 2011 12:35:54 +0000 (12:35 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 17 Jan 2011 12:35:54 +0000 (12:35 +0000)
  [DELTA]

  Changes for 0.32        Mon Jan 17 10:26:40 2011
  =================================================
  * Added support for HTTP::Tiny

Porting/Maintainers.pl
cpan/File-Fetch/lib/File/Fetch.pm
cpan/File-Fetch/t/01_File-Fetch.t
pod/perldelta.pod

index 4cb861f..0fe00fa 100755 (executable)
@@ -672,7 +672,7 @@ use File::Glob qw(:case);
     'File::Fetch' =>
        {
        'MAINTAINER'    => 'kane',
-       'DISTRIBUTION'  => 'BINGOS/File-Fetch-0.30.tar.gz',
+       'DISTRIBUTION'  => 'BINGOS/File-Fetch-0.32.tar.gz',
        'FILES'         => q[cpan/File-Fetch],
        'UPSTREAM'      => 'cpan',
        },
index c864b91..5d0a51d 100644 (file)
@@ -22,7 +22,7 @@ use vars    qw[ $VERBOSE $PREFER_BIN $FROM_EMAIL $USER_AGENT
                 $FTP_PASSIVE $TIMEOUT $DEBUG $WARN
             ];
 
-$VERSION        = '0.30';
+$VERSION        = '0.32';
 $VERSION        = eval $VERSION;    # avoid warnings with development releases
 $PREFER_BIN     = 0;                # XXX TODO implement
 $FROM_EMAIL     = 'File-Fetch@example.com';
@@ -36,7 +36,7 @@ $WARN           = 1;
 
 ### methods available to fetch the file depending on the scheme
 $METHODS = {
-    http    => [ qw|lwp httplite wget curl lftp fetch lynx iosock| ],
+    http    => [ qw|lwp httptiny wget curl lftp fetch httplite lynx iosock| ],
     ftp     => [ qw|lwp netftp wget curl lftp fetch ncftp ftp| ],
     file    => [ qw|lwp lftp file| ],
     rsync   => [ qw|rsync| ]
@@ -584,6 +584,46 @@ sub _lwp_fetch {
     }
 }
 
+### HTTP::Tiny fetching ###
+sub _httptiny_fetch {
+    my $self = shift;
+    my %hash = @_;
+
+    my ($to);
+    my $tmpl = {
+        to  => { required => 1, store => \$to }
+    };
+    check( $tmpl, \%hash ) or return;
+
+    my $use_list = {
+        'HTTP::Tiny'    => '0.008',
+
+    };
+
+    if( can_load(modules => $use_list) ) {
+
+        my $uri = $self->uri;
+
+        my $http = HTTP::Tiny->new( ( $TIMEOUT ? ( timeout => $TIMEOUT ) : () ) );
+
+        my $rc = $http->mirror( $uri, $to );
+
+        unless ( $rc->{success} ) {
+
+            return $self->_error(loc( "Fetch failed! HTTP response: %1 [%2]",
+                        $rc->{status}, $rc->{reason} ) );
+
+        }
+
+        return $to;
+
+    }
+    else {
+        $METHOD_FAIL->{'httptiny'} = 1;
+        return;
+    }
+}
+
 ### HTTP::Lite fetching ###
 sub _httplite_fetch {
     my $self = shift;
@@ -1523,6 +1563,7 @@ the $BLACKLIST, $METHOD_FAIL and other internal functions.
 
     LWP         => lwp
     HTTP::Lite  => httplite
+    HTTP::Tiny  => httptiny
     Net::FTP    => netftp
     wget        => wget
     lynx        => lynx
index 7a79f6d..c780de1 100644 (file)
@@ -179,7 +179,7 @@ for my $entry (@map) {
                   'http://www.cpan.org/index.html?q=1',
                   'http://www.cpan.org/index.html?q=1&y=2',
     ) {
-        for (qw[lwp httplite wget curl lftp fetch lynx iosock]) {
+        for (qw[lwp httptiny wget curl lftp fetch lynx httplite iosock]) {
             _fetch_uri( http => $uri, $_ );
         }
     }
index 79ae594..309604a 100644 (file)
@@ -182,7 +182,7 @@ warned, all 66 warn.
 
 =item *
 
-C<File::Fetch> has been upgraded from version 0.28 to 0.30
+C<File::Fetch> has been upgraded from version 0.28 to 0.32
 
 =item *