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__ |