version 1.13, 2010/06/30 06:30:17 |
version 1.14, 2010/06/30 19:45:42 |
|
|
package Net::OpenAMD; |
package Net::OpenAMD; |
|
|
# $AFresh1: OpenAMD.pm,v 1.12 2010/06/28 20:32:32 andrew Exp $ |
# $AFresh1: OpenAMD.pm,v 1.13 2010/06/30 05:30:17 andrew Exp $ |
|
|
use version; our $VERSION = qv('0.0.2'); |
|
my $BASE_URI = 'https://api.hope.net/api/'; |
|
|
|
use warnings; |
use warnings; |
use strict; |
use strict; |
use Carp; |
use Carp; |
|
|
|
use version; our $VERSION = qv('0.0.3'); |
|
my $BASE_URI = 'https://api.hope.net/api/'; |
|
|
use Scalar::Util qw( refaddr ); |
use Scalar::Util qw( refaddr ); |
*_ident = \&refaddr; |
*_ident = \&refaddr; |
|
|
|
|
|
|
{ |
{ |
|
|
my @attr_refs = \( my %base_uri_of, my %ua_of, my %auth_of, ); |
my @attr_refs |
|
= \( my %base_uri_of, my %ua_of, my %auth_of, my %helpers_of ); |
|
|
sub new { |
sub new { |
my ( $class, $options ) = @_; |
my ( $class, $options ) = @_; |
|
|
|
|
$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(); |
|
$helpers_of{$ident} = $options->{helpers} |
|
|| [qw( location speakers talks interests users )]; |
|
|
|
foreach my $helper ( @{ $helpers_of{$ident} } ) { |
|
## no critic |
|
no strict 'refs'; |
|
*{$helper} = sub { shift->get( $helper, @_ ) }; |
|
} |
|
|
# XXX Authenticate |
# XXX Authenticate |
|
|
return $self; |
return $self; |
|
|
return @data == 1 ? $data[0] : \@data; |
return @data == 1 ? $data[0] : \@data; |
} |
} |
|
|
sub location { return shift->get( 'location', @_ ) } |
sub stats { croak 'Unused feature' } |
sub speakers { return shift->get( 'speakers', @_ ) } |
|
sub talks { return shift->get( 'talks', @_ ) } |
|
sub interests { return shift->get( 'interests', @_ ) } |
|
sub users { return shift->get( 'users', @_ ) } |
|
sub stats { croak 'Unused feature' } |
|
|
|
sub DESTROY { |
sub DESTROY { |
my ($self) = @_; |
my ($self) = @_; |