[BACK]Return to OpenAMD.pm CVS log [TXT][DIR] Up to [local] / HOPE / Net-OpenAMD / lib / Net

Diff for /HOPE/Net-OpenAMD/lib/Net/OpenAMD.pm between version 1.16 and 1.17

version 1.16, 2010/07/09 23:04:21 version 1.17, 2010/07/13 01:13:22
Line 1 
Line 1 
 package Net::OpenAMD;  package Net::OpenAMD;
   
 # $AFresh1: OpenAMD.pm,v 1.15 2010/06/30 19:02:48 andrew Exp $  # $AFresh1: OpenAMD.pm,v 1.16 2010/07/09 22:04:21 andrew Exp $
   
 use warnings;  use warnings;
 use strict;  use strict;
 use Carp;  use Carp;
   
 use version; our $VERSION = qv('0.0.3');  use version; our $VERSION = qv('0.0.4');
 my $BASE_URI = 'https://api.hope.net/api/';  my $BASE_URI = 'https://api.hope.net/api/';
   
 use Scalar::Util qw( refaddr );  use Scalar::Util qw( refaddr );
Line 15 
Line 15 
 use LWP::UserAgent;  use LWP::UserAgent;
 use URI;  use URI;
 use Net::OAuth;  use Net::OAuth;
 use JSON qw/ from_json /;  use JSON;
   
 {  {
   
     my @attr_refs      my @attr_refs = \(
         = \( my %base_uri_of, my %ua_of, my %auth_of, my %actions_of );          my %base_uri_of,
           my %ua_of, my %auth_of, my %actions_of,
           my %json_of,
       );
   
     sub new {      sub new {
         my ( $class, $options ) = @_;          my ( $class, $options ) = @_;
Line 33 
Line 36 
   
         $base_uri_of{$ident} = $options->{base_uri} || $BASE_URI;          $base_uri_of{$ident} = $options->{base_uri} || $BASE_URI;
         $ua_of{$ident}       = $options->{ua}       || LWP::UserAgent->new();          $ua_of{$ident}       = $options->{ua}       || LWP::UserAgent->new();
           $json_of{$ident}     = $options->{json}     || JSON->new();
         $actions_of{$ident}  = $options->{actions}          $actions_of{$ident}  = $options->{actions}
             || [qw( location speakers talks interests users )];              || [qw( location speakers talks interests users )];
   
Line 51 
Line 55 
         my ( $self, $action, $query ) = @_;          my ( $self, $action, $query ) = @_;
         my $ident = _ident($self);          my $ident = _ident($self);
   
         my $uri = URI->new_abs( $action, $base_uri_of{$ident} );          my $uri = URI->new_abs( $action . '/', $base_uri_of{$ident} );
         $uri->query($query);          $uri->query_form($query);
   
         my $response = $ua_of{$ident}->get($uri);          my $response = $ua_of{$ident}->get($uri);
         croak $response->status_line if !$response->is_success;          croak $response->status_line if !$response->is_success;
   
         my @data = map { from_json($_) } split /\r?\n/xms,          my $data;
             $response->decoded_content;          eval {
               $data = $json_of{$ident}->decode( $response->decoded_content );
           };
           croak "Invalid JSON from [$uri]" if $@;
   
         return @data == 1 ? $data[0] : \@data;          return $data;
     }      }
   
     sub stats { croak 'Unused feature' }      sub stats { croak 'Unused feature' }
Line 88 
Line 95 
   
 =head1 VERSION  =head1 VERSION
   
 This document describes Net::OpenAMD version 0.0.1  This document describes Net::OpenAMD version 0.0.4
   
   
 =head1 SYNOPSIS  =head1 SYNOPSIS

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>