WWW-Marvel
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
examples/all_characters_names.pl view on Meta::CPAN
use strict;
use warnings;
use Data::Dumper;
use WWW::Marvel::Client;
use WWW::Marvel::Config::File;
use WWW::Marvel::Response;
my $cfg = WWW::Marvel::Config::File->new();
my $client = WWW::Marvel::Client->new({
public_key => $cfg->get_public_key,
private_key => $cfg->get_private_key,
});
my $total_records = undef;
my $founded = 0;
my $offset = 0;
my $limit = 100;
my $calls = 0;
do {
my $res_data = $client->characters({ limit => $limit, offset => $offset });
my $res = WWW::Marvel::Response->new($res_data);
lib/WWW/Marvel.pm view on Meta::CPAN
=head1 SYNOPSIS
use WWW::Marvel::Config;
use WWW::Marvel::Client;
my $cfg = WWW::Marvel::Config::File->new("my_marvel.conf");
my $client = WWW::Marvel::Client->new({
public_key => $cfg->get_public_key,
private_key => $cfg->get_private_key
});
my $data = $client->characters({ name => 'spider-man' });
=head1 DESCRIPTION
This module is an interface to Marvel Comics API
to "create awesome stuff with the world's greatest comic api".
lib/WWW/Marvel/Client.pm view on Meta::CPAN
use warnings;
use Carp;
use Digest::MD5;
use JSON;
use LWP::UserAgent;
use URI;
sub new {
my ($class, $args) = @_;
my $self = bless {}, $class;
for my $k (qw/ private_key public_key /) {
$self->{$k} = $args->{$k} if exists $args->{$k};
}
return $self;
}
sub get_private_key { $_[0]->{private_key} }
sub get_public_key { $_[0]->{public_key} }
sub get_timestamp { $_[0]->{timestamp} }
sub set_timestamp {
my ($self, $timestamp) = @_;
$self->{timestamp} = $timestamp;
return $self;
}
sub get_endpoint { "http://gateway.marvel.com" }
sub get_api_version { "v1" }
scripts/characters.pl view on Meta::CPAN
printf " FILTERS:\n";
printf " --%-12s \t Filter on %s [%s]\n", $_, $_, $FILTERS{$_} for (sort keys %FILTERS);
printf " FLAGS:\n";
printf " --%-12s \t Show %s\n", $_, $_ for (@FLAGS);
}
my $OPT = commandline_options();
my $cfg = WWW::Marvel::Config::File->new($OPT->{config});
my $client = WWW::Marvel::Client->new({
public_key => $cfg->get_public_key,
private_key => $cfg->get_private_key,
});
my %filters =
map { $_, $OPT->{$_} }
grep { defined $OPT->{$_} }
keys %FILTERS;
my $res_data = $client->characters(\%filters);
my $res = WWW::Marvel::Response->new($res_data);
my %FMT = (
t/www-marvel-client.t view on Meta::CPAN
# -*- perl -*-
use Test::More tests => 7;
BEGIN { use_ok( 'WWW::Marvel::Client' ); }
my $client = WWW::Marvel::Client->new({ public_key => 1234, private_key => 'abcd' });
# write a test for this croaking condition
# $client->hash();
$client->set_timestamp(1431297266);
is($client->get_timestamp, 1431297266, "get timestamp");
is($client->hash, '0d9b0a1ffe216482153a667fb4b68dac', 'md5 hash with ts = 1431297266');
is($client->hash(1), 'ffd275c5130566a2916217b101f26150', 'md5 hash with ts = 1');
my $uri = $client->uri({path => ''});
diag $uri;
t/www-marvel-config-file.conf view on Meta::CPAN
[auth]
public_key=1234
private_key=abcd
t/www-marvel-config-file.t view on Meta::CPAN
use Test::Exception;
use Test::More tests => 5;
BEGIN { use_ok( 'WWW::Marvel::Config::File' ); }
my $path = abs_path catfile(dirname(__FILE__), 'www-marvel-config-file.conf');
{
my $cfg = WWW::Marvel::Config::File->new($path);
is($cfg->get_public_key, '1234', 'get public key');
is($cfg->get_private_key, 'abcd', 'get private key');
is($cfg->get_config_filename, $path, 'get config filename');
}
{
dies_ok { WWW::Marvel::Config::File->new("fake_path") } "Unvalid config file";
}
t/www-marvel-config.t view on Meta::CPAN
# -*- perl -*-
use Test::More tests => 5;
use Test::Exception;
BEGIN { use_ok( 'WWW::Marvel::Config' ); }
{
my $cfg = WWW::Marvel::Config->new({ public_key => 1234, private_key => 'abcd' });
is($cfg->get_public_key, '1234', 'get public key');
is($cfg->get_private_key, 'abcd', 'get private key');
}
{
my $cfg = WWW::Marvel::Config->new();
dies_ok { $cfg->get_public_key } "No 'public_key' key set";
dies_ok { $cfg->get_private_key } "No 'private_key' key set";
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.094 second using v1.00-cache-2.02-grep-82fe00e-cpan-f73e49a70403 )