Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
perl5
/
vendor_perl
/
MetaCPAN
/
Client
/
Role
Upload
4 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
Entity.pm
3.01 KB
-rw-r--r--
2020-08-24 17:12:28
Edit
Del
HasUA.pm
2.32 KB
-rw-r--r--
2020-08-24 17:12:28
Edit
Del
Editing: HasUA.pm
(2.32 KB)
Path: /usr/share/perl5/vendor_perl/MetaCPAN/Client/Role/HasUA.pm
Back
use strict; use warnings; package MetaCPAN::Client::Role::HasUA; # ABSTRACT: Role for supporting user-agent attribute $MetaCPAN::Client::Role::HasUA::VERSION = '2.028000'; use Moo::Role; use Carp; use HTTP::Tiny; has _user_ua => ( init_arg => 'ua', is => 'ro', predicate => '_has_user_ua', ); has ua => ( init_arg => undef, is => 'ro', lazy => 1, builder => '_build_ua', ); has ua_args => ( is => 'ro', default => sub { [ agent => 'MetaCPAN::Client/'.($MetaCPAN::Client::VERSION||'xx') ] }, ); sub _build_ua { my $self = shift; # This level of indirection is so that if a user has not specified a custom UA # MetaCPAN::Client will have its own UA's # # But if the user **has** specified a custom UA, that UA is used for both. if ( $self->_has_user_ua ) { my $ua = $self->_user_ua; croak "cannot use given ua (must support 'get' and 'post' methods)" unless $ua->can("get") and $ua->can("post"); return $self->_user_ua; } return HTTP::Tiny->new( @{ $self->ua_args } ); } 1; __END__ =pod =encoding UTF-8 =head1 NAME MetaCPAN::Client::Role::HasUA - Role for supporting user-agent attribute =head1 VERSION version 2.028000 =head1 ATTRIBUTES =head2 ua my $mcpan = MetaCPAN::Client->new( ua => HTTP::Tiny->new(...) ); The user agent object for running requests. It must provide an interface that matches L<HTTP::Tiny>. Explicitly: =over 4 =item * Implement post() Method C<post> must be available that accepts a request URL and a hashref of options. =item * Implement get() Method C<get> must be available that accepts a request URL. =item * Return result hashref Must return a result hashref which has key C<success> and key C<content>. =back Default: L<HTTP::Tiny>, =head2 ua_args my $mcpan = MetaCPAN::Client->new( ua_args => [ agent => 'MyAgent' ], ); Arguments sent to the user agent. Default: user agent string: B<MetaCPAN::Client/$version>. =head1 AUTHORS =over 4 =item * Sawyer X <xsawyerx@cpan.org> =item * Mickey Nasriachi <mickey@cpan.org> =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2016 by Sawyer X. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut