WebService-Heartrails-Express
view release on metacpan or search on metacpan
lib/WebService/Heartrails/Express.pm view on Meta::CPAN
isa => 'WebService::Heartrails::Express::Provider',
lazy_build => 1,
);
has areas => (
is => 'rw',
isa => 'ArrayRef',
lazy_build => 1
);
has prefs => (
is => 'rw',
isa => 'ArrayRef',
lazy_build => 1
);
sub line{
my $self = shift;
$self->provider->dispatch('line',@_);
}
lib/WebService/Heartrails/Express.pm view on Meta::CPAN
use constant AREA_ENDPOINT => 'http://express.heartrails.com/api/json?method=getAreas';
use constant PREF_ENDPOINT => 'http://express.heartrails.com/api/json?method=getPrefectures';
sub _build_areas{
my $self = shift;
my $response = $self->provider->furl->get(AREA_ENDPOINT);
my $content = JSON::decode_json($response->{content});
return $content->{response}->{area};
}
sub _build_prefs{
my $self = shift;
my $response = $self->provider->furl->get(PREF_ENDPOINT);
my $content = JSON::decode_json($response->{content});
return $content->{response}->{prefecture};
}
no Mouse;
__PACKAGE__->meta->make_immutable;
1;
t/01_express.t view on Meta::CPAN
my $express = new WebService::Heartrails::Express();
subtest 'area' => sub{
my $content = $express->areas;
is($content->[2],'颿±');
is($content->[5],'ä¸å½');
};
subtest 'pref' => sub{
my $content = $express->prefs;
is($content->[0],'åæµ·é');
is($content->[5],'山形ç');
};
subtest 'line' => sub{
my $area_only = $express->line({area => '颿±'});
is($area_only->[2],'JRä¸å¤®ç·');
my $pref_only = $express->line({prefecture => 'ç¥å¥å·ç'});
is($pref_only->[1],'JRäº¬æµæ±åç·');
my $pref_and_area = $express->line({area => '颿±',prefecture => 'åèç'});
( run in 0.548 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )