File Coverage

blib/lib/WebService/Simple/Yahoo/JP/API.pm
Criterion Covered Total %
statement 18 59 30.5
branch 0 8 0.0
condition n/a
subroutine 6 19 31.5
pod n/a
total 24 86 27.9


line stmt bran cond sub pod time code
1             package WebService::Simple::Yahoo::JP::API;
2 1     1   18 use v5.10.1;
  1         3  
  1         52  
3 1     1   6 use strict;
  1         3  
  1         50  
4 1     1   6 use warnings;
  1         2  
  1         39  
5 1     1   17171 use URI;
  1         12299  
  1         37  
6 1     1   47 use base qw(WebService::Simple);
  1         3  
  1         1341  
7             our $VERSION = '0.11';
8             __PACKAGE__->config( base_url => 'http://yahooapis.jp/', );
9              
10             sub config {
11 1     1   3 my $class = shift;
12 1         6 my %args = @_;
13 1         48 my $self = $class->SUPER::config(%args);
14 0           return $self;
15             }
16              
17             sub new {
18 0     0     my $class = shift;
19 0           my %args = @_;
20 0           my %tmp = ();
21 0 0         if ( defined $args{appid} ) {
22 0           $tmp{appid} = $args{appid};
23 0           delete $args{appid};
24             }
25 0           my $self = $class->SUPER::new(%args);
26 0           while ( my ( $key, $val ) = each %tmp ) {
27 0           $self->{$key} = $val;
28             }
29 0           return $self;
30             }
31              
32 0     0     sub search { return shift->_class('::Search'); }
33 0     0     sub map { return shift->_class('::Map'); }
34 0     0     sub jlp { return shift->_class('::Jlp'); }
35 0     0     sub auctions { return shift->_class('::Auctions'); }
36 0     0     sub shopping { return shift->_class('::Shopping'); }
37 0     0     sub news { return shift->_class('::News'); }
38 0     0     sub chiebukuro { return shift->_class('::Chiebukuro'); }
39 0     0     sub dir { return shift->_class('::Dir'); }
40 0     0     sub cert { return shift->_class('::Cert'); }
41              
42             sub _class {
43 0     0     my $self = shift;
44 0           my $subclass = shift;
45 0           my $class = ref $self;
46 0           my $superclass = __PACKAGE__;
47 0 0         if ( $class =~ m/\A$superclass/ ) {
48 0           return bless $self, __PACKAGE__ . $subclass;
49             }
50             else {
51 0           return $self;
52             }
53             }
54              
55             sub _get {
56 0     0     my $self = shift;
57 0           my $extra_path = shift;
58 0           my $uri = URI->new( $self->config->{base_url} . $extra_path );
59 0 0         if ( $self->{appid} ) {
60 0           $uri->query_form( { appid => $self->{appid}, @_ } );
61             }
62             else {
63 0           $uri->query_form( {@_} );
64             }
65 0           local $self->{base_url} = $uri;
66 0           return $self->get('');
67             }
68              
69             sub _post {
70 0     0     my $self = shift;
71 0           my $extra_path = shift;
72 0           local $self->{base_url} = $self->config->{base_url};
73 0 0         if ( $self->{appid} ) {
74 0           return $self->post( $extra_path,
75             Content => { appid => $self->{appid}, @_ } );
76             }
77             else {
78 0           return $self->post( $extra_path, Content => {@_} );
79             }
80             }
81              
82             1;
83             __END__