view release on metacpan or search on metacpan
"Data::Result" : "1.0001",
"Exporter" : "5.72",
"HTTP::Headers" : "6.13",
"HTTP::Request" : "6.13",
"HTTP::Response" : "6.13",
"IO::Scalar" : "2.111",
"JSON" : "2.94",
"Log::Dispatch::Handle" : "2.65",
"Log::Log4perl" : "1.49",
"Log::LogMethods" : "1.0001",
"Modern::Perl" : "1.20170117",
"Moo" : "2.003002",
"MooX::Types::MooseLike::Base" : "0.29",
"Ref::Util" : "0.203",
"Scalar::Util" : "1.48",
"Test::More" : "1.302073",
"Time::HiRes" : "1.9741",
"namespace::clean" : "0.27",
"overload" : "1.28"
}
}
Data::Result: '1.0001'
Exporter: '5.72'
HTTP::Headers: '6.13'
HTTP::Request: '6.13'
HTTP::Response: '6.13'
IO::Scalar: '2.111'
JSON: '2.94'
Log::Dispatch::Handle: '2.65'
Log::Log4perl: '1.49'
Log::LogMethods: '1.0001'
Modern::Perl: '1.20170117'
Moo: '2.003002'
MooX::Types::MooseLike::Base: '0.29'
Ref::Util: '0.203'
Scalar::Util: '1.48'
Test::More: '1.302073'
Time::HiRes: '1.9741'
namespace::clean: '0.27'
overload: '1.28'
version: '1.023'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Makefile.PL view on Meta::CPAN
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
NAME => 'HTTP::MultiGet',
VERSION_FROM => 'lib/HTTP/MultiGet.pm', # finds $VERSION
PREREQ_PM => {
qw(
Moo 2.003002
overload 1.28
Modern::Perl 1.20170117
MooX::Types::MooseLike::Base 0.29
Carp 1.42
namespace::clean 0.27
Data::Dumper 2.167
Test::More 1.302073
Data::Result 1.0
Log::Log4perl 1.49
Time::HiRes 1.9741
B 1.68
Scalar::Util 1.48
lib/AnyEvent/HTTP/MultiGet.pm view on Meta::CPAN
package AnyEvent::HTTP::MultiGet;
use Modern::Perl;
use Moo;
use MooX::Types::MooseLike::Base qw(:all);
use Data::Dumper;
use Ref::Util qw(is_plain_arrayref);
use namespace::clean;
Log::Log4perl->wrapper_register(__PACKAGE__);
BEGIN {
extends 'HTTP::MultiGet';
}
our $VERSION=$HTTP::MultiGet::VERSION;
=head1 NAME
AnyEvent::HTTP::MultiGet - AnyEvent->condvar Control Freindly LWP Like agent
=head1 SYNOPSIS
use Modern::Perl;
use AnyEvent::HTTP::MultiGet;
my $self=AnyEvent::HTTP::MultiGet->new();
my $count=0;
TEST_LOOP: {
my $req=HTTP::Request->new(GET=>'http://google.com');
my $req_b=HTTP::Request->new(GET=>'https://127.0.0.1:5888');
my @todo=HTTP::Request->new(GET=>'http://yahoo.com');
push @todo,HTTP::Request->new(GET=>'http://news.com');
push @todo,HTTP::Request->new(GET=>'https://news.com');
lib/AnyEvent/HTTP/MultiGet.pm view on Meta::CPAN
$cv->send if $total==$count;
};
$self->add_cb($req,$code);
$self->add_cb($req_b,$code);
$self->run_next;
$cv->recv;
}
Handling Multiple large http requests at once
use Modern::Perl;
use AnyEvent::HTTP::MultiGet;
my $self=AnyEvent::HTTP::MultiGet->new();
my $chunks=0;
my $count=0;
my $req=HTTP::Request->new(GET=>'https://google.com');
my $req_b=HTTP::Request->new(GET=>'https://yahoo.com');
my $req_c=HTTP::Request->new(GET=>'https://news.com');
lib/HTTP/MultiGet.pm view on Meta::CPAN
package HTTP::MultiGet;
=head1 NAME
HTTP::MultiGet - Run many http requests at once!
=head1 SYNOPSIS
use Modern::Perl;
use HTTP::MultiGet;
use HTTP::Request;
my $getter=new HTTP::MultiGet;
my @requests=(map { HTTP::Request->new(GET=>"http://localhost$_") } (1 .. 1000));
my @responses=$getter->run_requests(@requests);
my $id=0;
foreach my $response (@responses) {
lib/HTTP/MultiGet.pm view on Meta::CPAN
if($response->is_success) {
print $response->decoded_content;
} else {
print $response->status_line,"\n";
}
}
=head2 Handling Multiple Large Downloads
use Modern::Perl;
use HTTP::MultiGet;
use HTTP::Request;
my $req=HTTP::Request->new(GET=>'http://some.realy.big/file/to/download.gz');
my $req_b=HTTP::Request->new(GET=>'http://some.realy.big/file/to/download2.gz');
# create a callback
my $code=sub {
my ($getter,$request,$headers,$chunk)=@_;
# 0: Current HTTP::MultiGet instance
lib/HTTP/MultiGet/Role.pm view on Meta::CPAN
package HTTP::MultiGet::Role;
use Modern::Perl;
use Moo::Role;
use MooX::Types::MooseLike::Base qw(:all);
use AnyEvent::HTTP::MultiGet;
use AnyEvent;
use JSON qw();
use Data::Dumper;
use Carp qw(croak);
use namespace::clean;
use AnyEvent;
use Ref::Util qw(is_plain_arrayref);
lib/HTTP/MultiGet/Role.pm view on Meta::CPAN
our $AUTOLOAD;
=head1 NAME
HTTP::MultiGet::Role - Role for building blocking/non-blocking AnyEvent friendly REST Clients
=head1 SYNOPSIS
package My::Rest::Class;
use Modern::Perl;
use Moo;
BEGIN { with 'HTTP::MultiGet::Role' }
sub que_some_request {
my ($self,$cb)=@_;
my $request=HTTP::Request->new(GET=>'https://some_json_endpoint');
return $self->queue_request($request,$cb);
}
t/AnyEvent-HTTP-MultiGet.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Carp qw(confess);
use Data::Dumper;
use AnyEvent::Loop;
BEGIN { $SIG{__DIE__} = sub { confess @_ }; }
use Test::More qw(no_plan);
my $class='AnyEvent::HTTP::MultiGet';
require_ok($class);
use_ok($class);
t/HTTP-MultiGet-Role-Parse.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Test::More qw(no_plan);
use HTTP::Response;
use HTTP::Headers;
use HTTP::Request;
use Data::Dumper;
use AnyEvent::Loop;
use Scalar::Util qw(looks_like_number);
use AnyEvent::Strict;
use Carp qw(confess);
t/HTTP-MultiGet-Role-Parse.t view on Meta::CPAN
my $result=$self->test;
ok(!$result,'Should have a false result');
isa_ok($result,'Data::Result');
like($result,qr/$body/,'result string test');
}
BEGIN {
package
test;
use Modern::Perl;
use Moo;
BEGIN {with 'HTTP::MultiGet::Role' }
sub que_test {
my ($self,$cb,@args)=@_;
$self->queue_request(HTTP::Request->new(GET=>'http://somewhere.com'),$cb);
}
}
t/HTTP-MultiGet-Role.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Test::More qw(no_plan);
use HTTP::Response;
use HTTP::Headers;
use HTTP::Request;
use Data::Dumper;
use AnyEvent::Loop;
use Scalar::Util qw(looks_like_number);
use AnyEvent::Strict;
use Carp qw(confess);
t/HTTP-MultiGet-Role.t view on Meta::CPAN
}
for my $code (199,400,401,300,500,501,595) {
my $response=HTTP::Response->new($code,'fail',[],q{{"test": "testing"}});
my $result=$self->parse_response(undef,$response);
ok(!$result,'Should fail a code: '.$code);
}
BEGIN {
package
SomeTestClass;
use Modern::Perl;
use Moo;
use Data::Dumper;
BEGIN {
with 'HTTP::MultiGet::Role';
}
sub que_google {
my ($self,$cb)=@_;
my $req=new HTTP::Request(GET=>'https://google.com');
return $self->queue_request($req,$cb);
}
t/HTTP-MultiGet-fake_jobs.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Test::More qw(no_plan);
use HTTP::Response;
use HTTP::Headers;
use HTTP::Request;
use Data::Dumper;
use AnyEvent::Loop;
use Scalar::Util qw(looks_like_number);
use AnyEvent::Strict;
use Carp qw(confess);
t/HTTP-MultiGet-stream.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Test::More qw(no_plan);
use HTTP::Response;
use HTTP::Headers;
use HTTP::Request;
use Data::Dumper;
use AnyEvent::Loop;
use Scalar::Util qw(looks_like_number);
use Carp qw(confess);
BEGIN { $SIG{__DIE__} = sub { confess @_ }; }
t/HTTP-MultiGet.t view on Meta::CPAN
use Modern::Perl;
use Log::LogMethods::Log4perlLogToString;
use Test::More qw(no_plan);
use HTTP::Response;
use HTTP::Headers;
use HTTP::Request;
use Data::Dumper;
use AnyEvent::Loop;
use Scalar::Util qw(looks_like_number);
use AnyEvent::Strict;
use Carp qw(confess);
t/HTTP-MultiGet.t view on Meta::CPAN
while(my ($id,$result)=each %{$results}) {
++$total;
ok($result,'Result should be true');
isa_ok($result,'Data::Result');
isa_ok($result->get_data,'HTTP::Response');
}
}
{
package test;
use Modern::Perl;
use Moo;
BEGIN { extends 'HTTP::MultiGet'; }
sub que_function {
my ($self,@args)=@_;
my $code=$self->SUPER::que_function(@args);
return sub {
$code->(@_);
$self->log_always("our que count is: ".$self->que_count);
no warnings;