CPAN-Distribution-ReleaseHistory
view release on metacpan or search on metacpan
t/live-moo-history.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::RequiresInternet ( 'api.metacpan.org' => 80 );
use Test::Fatal qw( exception );
# ABSTRACT: Show live Moo history
0 and eval <<'DEBUGGING';
use HTTP::Tiny;
package HTTP::Tiny;
use Class::Method::Modifiers qw( around );
use Data::Dump qw(pp);
require JSON;
sub _decode_response {
my ( $response ) = @_;
if ( exists $response->{content} ) {
my $clone = { %{$response} };
my $data = $clone->{content};
local $@;
my $ok = eval {
$clone->{content} = JSON->new->decode( "$data" );
1;
};
$response->{json_err} = substr $@, 0, 130 if not $ok;
#warn $@ if not $ok;
return $clone if $ok;
}
return $response;
}
sub _decode_request {
my ( $request ) = @_;
my ( $method, $url, $params ) = @_;
return $request unless $params;
return $request unless $params->{'content'};
my $content;
return $request unless eval { $content = JSON->new->decode( $params->{'content'}); 1 };
my $clone = {%{$params}};
$clone->{content} = $content;
return [ $method, $url, $clone ];
}
around 'request' => sub {
my ( $orig, $self, @args ) = @_;
pp( _decode_request(@args) );
my $rval = $orig->( $self, @args );
pp( _decode_response($rval));
return $rval;
};
DEBUGGING
use CPAN::Distribution::ReleaseHistory;
my $rh;
my $e;
is(
$e = exception {
$rh = CPAN::Distribution::ReleaseHistory->new(
distribution => "Moo",
sort => 'asc',
);
},
undef,
( run in 1.129 second using v1.01-cache-2.11-cpan-54e63673c56 )