=================================================================== RCS file: /cvs/HOPE/Net-OpenAMD/lib/Net/OpenAMD.pm,v retrieving revision 1.10 retrieving revision 1.13 diff -u -r1.10 -r1.13 --- HOPE/Net-OpenAMD/lib/Net/OpenAMD.pm 2010/06/27 04:59:32 1.10 +++ HOPE/Net-OpenAMD/lib/Net/OpenAMD.pm 2010/06/30 06:30:17 1.13 @@ -1,22 +1,21 @@ package Net::OpenAMD; -# $AFresh1: OpenAMD.pm,v 1.9 2010/06/27 03:45:07 andrew Exp $ +# $AFresh1: OpenAMD.pm,v 1.12 2010/06/28 20:32:32 andrew Exp $ +use version; our $VERSION = qv('0.0.2'); +my $BASE_URI = 'https://api.hope.net/api/'; + use warnings; use strict; use Carp; -use version; our $VERSION = qv('0.0.1'); - -my $BASE_URI = 'https://api.hope.net/api/'; - use Scalar::Util qw( refaddr ); *_ident = \&refaddr; use LWP::UserAgent; use URI; use Net::OAuth; -use JSON::Any; +use JSON qw/ from_json /; { @@ -27,7 +26,7 @@ my $self = bless do { \my $x }, $class; my $ident = _ident($self); - $options //= {}; + $options ||= {}; croak 'Options should be a hashref' if ref $options ne 'HASH'; @@ -47,12 +46,12 @@ $uri->query($query); my $response = $ua_of{$ident}->get($uri); + croak $response->status_line if !$response->is_success; - if ( !$response->is_success ) { - croak $response->status_line; - } + my @data = map { from_json($_) } split /\r?\n/xms, + $response->decoded_content; - return JSON::Any->jsonToObj( $response->decoded_content ); + return @data == 1 ? $data[0] : \@data; } sub location { return shift->get( 'location', @_ ) } @@ -176,7 +175,7 @@ =head1 DIAGNOSTICS -All methods should croak when an error occours. +All methods should croak when an error occurs. If the remote API returns a successful response that contains valid JSON, that will be decoded and returned.