view release on metacpan or search on metacpan
2.024000 20.4.18
* Fix warning on a JSON::PP::Boolean check (Mickey)
2.023000 26.1.18
* Support the new 'deprecated' field in File and Release types (Mickey)
2.022000 3.1.18
* Allow user-defined target classes in ResultSet (Kent Fredric, Sawyer)
* Added test for reverse dependencies (Sawyer)
* Switched ref() checks to Ref::Util::is_ref (Mickey)
2.021000 18.11.17
* Scroller fix for page skipping (Thomas Sibley)
* Sorting in scrolled searches (Thomas Sibley)
* Type check cleanup (Thomas Sibley)
2.020000 17.11.17
* Added support for /search/autocomplete/suggest (Mickey)
2.019000 16.11.17
2.003000 19.12.16
* Escaped query to autocomplete (Mickey)
* Removed dependency: Try::Tiny (Mickey)
2.002000 14.12.16
* Support 'autocomplete' endpoint (Mickey)
2.001000 08.12.16
* Distribution: added 'rt' & 'github' methods (Mickey)
* Use Ref::Util for ref checks (Mickey)
2.000000 18.11.16
* Major version: v1 full support
- removed support and default settings for v0
- corrected domain, base_url setting, using clientinfo
- code/tests updates and cleanup
(Mickey, Brad Lhotsky)
* Pinned Search::Elasticsearch version to 2.03 (Mickey)
* Use @Starter in dist.ini + cpanfile cleanup (Grinnz)
"runtime" : {
"requires" : {
"Carp" : "0",
"HTTP::Tiny" : "0.056",
"IO::Socket::SSL" : "1.42",
"JSON::MaybeXS" : "0",
"JSON::PP" : "0",
"Moo" : "0",
"Moo::Role" : "0",
"Net::SSLeay" : "1.49",
"Ref::Util" : "0",
"Safe::Isa" : "0",
"Type::Tiny" : "0",
"URI::Escape" : "0",
"perl" : "5.010",
"strict" : "0",
"warnings" : "0"
}
},
"test" : {
"recommends" : {
version: '2.033000'
requires:
Carp: '0'
HTTP::Tiny: '0.056'
IO::Socket::SSL: '1.42'
JSON::MaybeXS: '0'
JSON::PP: '0'
Moo: '0'
Moo::Role: '0'
Net::SSLeay: '1.49'
Ref::Util: '0'
Safe::Isa: '0'
Type::Tiny: '0'
URI::Escape: '0'
perl: '5.010'
strict: '0'
warnings: '0'
resources:
IRC: irc://irc.perl.org/#metacpan
WebIRC: https://chat.mibbit.com/#metacpan@irc.perl.org
bugtracker: https://github.com/metacpan/metacpan-client/issues
Makefile.PL view on Meta::CPAN
"NAME" => "MetaCPAN::Client",
"PREREQ_PM" => {
"Carp" => 0,
"HTTP::Tiny" => "0.056",
"IO::Socket::SSL" => "1.42",
"JSON::MaybeXS" => 0,
"JSON::PP" => 0,
"Moo" => 0,
"Moo::Role" => 0,
"Net::SSLeay" => "1.49",
"Ref::Util" => 0,
"Safe::Isa" => 0,
"Type::Tiny" => 0,
"URI::Escape" => 0,
"strict" => 0,
"warnings" => 0
},
"TEST_REQUIRES" => {
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"LWP::Protocol::https" => 0,
Makefile.PL view on Meta::CPAN
"ExtUtils::MakeMaker" => 0,
"File::Spec" => 0,
"HTTP::Tiny" => "0.056",
"IO::Socket::SSL" => "1.42",
"JSON::MaybeXS" => 0,
"JSON::PP" => 0,
"LWP::Protocol::https" => 0,
"Moo" => 0,
"Moo::Role" => 0,
"Net::SSLeay" => "1.49",
"Ref::Util" => 0,
"Safe::Isa" => 0,
"Test::Fatal" => 0,
"Test::More" => 0,
"Test::Needs" => "0.002005",
"Type::Tiny" => 0,
"URI::Escape" => 0,
"base" => 0,
"blib" => "1.01",
"strict" => 0,
"warnings" => 0
use warnings;
requires "Carp" => "0";
requires "HTTP::Tiny" => "0.056";
requires "IO::Socket::SSL" => "1.42";
requires "JSON::MaybeXS" => "0";
requires "JSON::PP" => "0";
requires "Moo" => "0";
requires "Moo::Role" => "0";
requires "Net::SSLeay" => "1.49";
requires "Ref::Util" => "0";
requires "Safe::Isa" => "0";
requires "Type::Tiny" => "0";
requires "URI::Escape";
requires "perl" => "5.010";
requires "strict" => "0";
requires "warnings" => "0";
on 'test' => sub {
requires "Test::Fatal" => "0";
requires "Test::More" => "0";
examples/authors_blogs.pl view on Meta::CPAN
use strict;
use warnings;
use MetaCPAN::Client;
use Ref::Util qw< is_arrayref >;
my $mcpan = MetaCPAN::Client->new;
my $all_authors = $mcpan->all('authors');
AUTHOR: while ( my $author = $all_authors->next ) {
BLOG: for my $blog ( @{ $author->blog || [] } ) {
$blog and exists $blog->{url} or next BLOG;
my $url = $blog->{url};
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.033000';
use Moo;
use Carp;
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;
lib/MetaCPAN/Client/Author.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Author;
# ABSTRACT: An Author data object
$MetaCPAN::Client::Author::VERSION = '2.033000';
use Moo;
use Ref::Util qw< is_arrayref >;
with 'MetaCPAN::Client::Role::Entity';
my %known_fields = (
scalar => [qw<
city
country
gravatar_url
name
ascii_name
lib/MetaCPAN/Client/Release.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Release;
# ABSTRACT: A Release data object
$MetaCPAN::Client::Release::VERSION = '2.033000';
use Moo;
use Ref::Util qw< is_hashref >;
use JSON::MaybeXS qw< decode_json >;
with 'MetaCPAN::Client::Role::Entity',
'MetaCPAN::Client::Role::HasUA';
my %known_fields = (
scalar => [qw<
abstract
archive
author
lib/MetaCPAN/Client/Request.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Request;
# ABSTRACT: Object used for making requests to MetaCPAN
$MetaCPAN::Client::Request::VERSION = '2.033000';
use Moo;
use Carp;
use JSON::MaybeXS qw<decode_json encode_json>;
use Ref::Util qw< is_arrayref is_hashref is_ref >;
use MetaCPAN::Client::Scroll;
use MetaCPAN::Client::Types qw< HashRef Int >;
with 'MetaCPAN::Client::Role::HasUA';
has _clientinfo => (
is => 'ro',
isa => HashRef,
lazy => 1,
lib/MetaCPAN/Client/Role/Entity.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Role::Entity;
# ABSTRACT: A role for MetaCPAN entities
$MetaCPAN::Client::Role::Entity::VERSION = '2.033000';
use Moo::Role;
use JSON::PP;
use Ref::Util qw< is_ref is_arrayref is_hashref >;
has data => (
is => 'ro',
required => 1,
);
has client => (
is => 'ro',
lazy => 1,
builder => '_build_client',
lib/MetaCPAN/Client/Scroll.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Scroll;
# ABSTRACT: A MetaCPAN::Client scroller
$MetaCPAN::Client::Scroll::VERSION = '2.033000';
use Moo;
use Carp;
use Ref::Util qw< is_hashref >;
use JSON::MaybeXS qw< decode_json encode_json >;
use MetaCPAN::Client::Types qw< Str Int Time ArrayRef HashRef Bool >;
has ua => (
is => 'ro',
required => 1,
);
has size => (
lib/MetaCPAN/Client/Types.pm view on Meta::CPAN
use strict;
use warnings;
package MetaCPAN::Client::Types;
# ABSTRACT: type checking helper class
$MetaCPAN::Client::Types::VERSION = '2.033000';
use Type::Tiny ();
use Types::Standard ();
use Ref::Util qw< is_ref >;
use parent 'Exporter';
our @EXPORT_OK = qw< Str Int Time ArrayRef HashRef Bool >;
sub Str { Types::Standard::Str }
sub Int { Types::Standard::Int }
sub ArrayRef { Types::Standard::ArrayRef }
sub HashRef { Types::Standard::HashRef }
sub Bool { Types::Standard::Bool }
t/00-report-prereqs.dd view on Meta::CPAN
'runtime' => {
'requires' => {
'Carp' => '0',
'HTTP::Tiny' => '0.056',
'IO::Socket::SSL' => '1.42',
'JSON::MaybeXS' => '0',
'JSON::PP' => '0',
'Moo' => '0',
'Moo::Role' => '0',
'Net::SSLeay' => '1.49',
'Ref::Util' => '0',
'Safe::Isa' => '0',
'Type::Tiny' => '0',
'URI::Escape' => '0',
'perl' => '5.010',
'strict' => '0',
'warnings' => '0'
}
},
'test' => {
'recommends' => {
t/api/author.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Ref::Util qw< is_arrayref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, 'author' );
my $author = $mc->author('XSAWYERX');
isa_ok( $author, 'MetaCPAN::Client::Author' );
can_ok( $author, 'pauseid' );
t/api/cover.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::More tests => 8;
use Ref::Util qw< is_hashref is_ref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, 'cover' );
my $cover = $mc->cover('Moose-2.2007');
isa_ok( $cover, 'MetaCPAN::Client::Cover' );
can_ok( $cover, qw< distribution release version criteria > );
t/api/distribution.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::More tests => 9;
use Test::Fatal;
use Ref::Util qw< is_hashref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, 'distribution' );
my $dist = $mc->distribution('Business-ISBN');
isa_ok( $dist, 'MetaCPAN::Client::Distribution' );
can_ok( $dist, 'name' );
t/api/package.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::More tests => 10;
use Ref::Util qw< is_arrayref is_ref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, 'package' );
my $pack = $mc->package('MooseX::Types');
isa_ok( $pack, 'MetaCPAN::Client::Package' );
can_ok( $pack, qw< module_name file distribution version author > );
t/api/permission.t view on Meta::CPAN
#!perl
use strict;
use warnings;
use Test::More tests => 7;
use Ref::Util qw< is_arrayref is_ref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, 'permission' );
my $perm = $mc->permission('MooseX::Types');
isa_ok( $perm, 'MetaCPAN::Client::Permission' );
can_ok( $perm, qw< module_name owner co_maintainers > );
t/api/reverse-dependencies.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::Fatal;
use Ref::Util qw< is_hashref >;
use lib '.';
use t::lib::Functions;
my $mc = mcpan();
can_ok( $mc, qw< reverse_dependencies rev_deps > );
my $module = 'MetaCPAN::Client';
my $rs = $mc->reverse_dependencies($module);
#!perl
use strict;
use warnings;
use Test::More tests => 6;
use Ref::Util qw< is_hashref >;
use HTTP::Tiny;
use MetaCPAN::Client::Scroll;
use MetaCPAN::Client::Release;
my $scroller = MetaCPAN::Client::Scroll->new(
ua => HTTP::Tiny->new,
base_url => 'https://fastapi.metacpan.org/v1/',
type => 'release',
body => { query => { term => { distribution => 'MetaCPAN-Client' } } },
size => 50,