MetaCPAN-Client
view release on metacpan or search on metacpan
lib/MetaCPAN/Client.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client;
# ABSTRACT: A comprehensive, DWIM-featured client to the MetaCPAN API
$MetaCPAN::Client::VERSION = '2.042000';
use Moo;
use Carp;
use JSON::MaybeXS qw< JSON >;
use Ref::Util qw< is_arrayref is_hashref is_ref >;
use URI::Escape qw< uri_escape_utf8 >;
use MetaCPAN::Client::Request;
use MetaCPAN::Client::Author;
use MetaCPAN::Client::Distribution;
use MetaCPAN::Client::DownloadURL;
use MetaCPAN::Client::Module;
use MetaCPAN::Client::File;
use MetaCPAN::Client::Favorite;
use MetaCPAN::Client::Pod;
use MetaCPAN::Client::Release;
use MetaCPAN::Client::Mirror;
use MetaCPAN::Client::Package;
use MetaCPAN::Client::Permission;
use MetaCPAN::Client::ResultSet;
use MetaCPAN::Client::Cover;
use MetaCPAN::Client::Cve;
has request => (
is => 'ro',
handles => [qw<ua fetch post ssearch>],
);
my @supported_searches = qw<
author distribution favorite module release mirror file permission package cover cve
>;
sub BUILDARGS {
my ( $class, %args ) = @_;
$args{'request'} ||= MetaCPAN::Client::Request->new(
( ua => $args{ua} )x!! $args{ua},
( ua_args => $args{ua_args} )x!! $args{ua_args},
( domain => $args{domain} )x!! $args{domain},
( debug => $args{debug} )x!! $args{debug},
);
return \%args;
}
sub author {
my $self = shift;
my $arg = shift;
my $params = shift;
return $self->_get_or_search( 'author', $arg, $params );
}
sub module {
my $self = shift;
my $arg = shift;
my $params = shift;
return $self->_get_or_search( 'module', $arg, $params );
}
sub distribution {
my $self = shift;
my $arg = shift;
my $params = shift;
( run in 1.139 second using v1.01-cache-2.11-cpan-39bf76dae61 )