AnyEvent-Net-Curl-Queued
view release on metacpan or search on metacpan
lib/AnyEvent/Net/Curl/Const.pm view on Meta::CPAN
package AnyEvent::Net::Curl::Const;
# ABSTRACT: Access Net::Curl::* constants by name
use strict;
use utf8;
use warnings qw(all);
use Carp qw(carp);
use Net::Curl::Easy;
use Scalar::Util qw(looks_like_number);
our $VERSION = '0.049'; # VERSION
my (%const_info, %const_opt);
sub info {
my ($name) = @_;
$const_info{$name} = _curl_const(CURLINFO => $name)
unless exists $const_info{$name};
return $const_info{$name};
}
sub opt {
my ($name) = @_;
$const_opt{$name} = _curl_const(CURLOPT => $name)
unless exists $const_opt{$name};
return $const_opt{$name};
}
sub _curl_const {
my ($suffix => $key) = @_;
return $key if looks_like_number($key);
$key =~ s{^Net::Curl::Easy::}{}ix;
$key =~ y{-}{_};
$key =~ s{\W}{}gx;
$key = uc $key;
$key = "${suffix}_${key}" if $key !~ m{^${suffix}_}x;
my $val = eval {
## no critic (ProhibitNoStrict)
no strict 'refs';
my $const_name = 'Net::Curl::Easy::' . $key;
*$const_name->();
};
carp "Invalid libcurl constant: $key" if $@;
return $val;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
AnyEvent::Net::Curl::Const - Access Net::Curl::* constants by name
=head1 VERSION
version 0.049
=head1 SYNOPSIS
my $easy = shift;
$easy->setopt(AnyEvent::Net::Curl::Const::opt('verbose'), 1);
$easy->getinfo(AnyEvent::Net::Curl::Const::info('size_download'));
=head1 WARNING: GONE MOO!
This module isn't using L<Any::Moose> anymore due to the announced deprecation status of that module.
The switch to the L<Moo> is known to break modules that do C<extend 'AnyEvent::Net::Curl::Queued::Easy'> / C<extend 'YADA::Worker'>!
To keep the compatibility, make sure that you are using L<MooseX::NonMoose>:
package YourSubclassingModule;
use Moose;
use MooseX::NonMoose;
extends 'AnyEvent::Net::Curl::Queued::Easy';
...
Or L<MouseX::NonMoose>:
package YourSubclassingModule;
use Mouse;
use MouseX::NonMoose;
extends 'AnyEvent::Net::Curl::Queued::Easy';
...
( run in 1.435 second using v1.01-cache-2.11-cpan-39bf76dae61 )