%PDF- %PDF-
Direktori : /data/old/usr/share/perl5/vendor_perl/Net/Twitter/Lite/ |
Current File : //data/old/usr/share/perl5/vendor_perl/Net/Twitter/Lite/Error.pm |
package Net::Twitter::Lite::Error; $Net::Twitter::Lite::Error::VERSION = '0.12006'; use warnings; use strict; use overload '""' => \&error, 'fallback' => 1; # This is basically a duplicate of Net::Twitter::Lite::Error, only without Moose. I # considered creating a new Net-Twitter-Error distribution so that it could be # shared by both Net::Twitter and Net::Twitter::Lite. But there's a strong # argument for making Net::Twitter::Lite depend upon as few modules as # possible. =head1 NAME Net::Twitter::Lite::Error - Encapsulates errors thrown by Net::Twitter::Lite =head1 VERSION version 0.12006 =head1 SYNOPSIS use Net::Twitter::Lite; my $nt = Net::Twitter::Lite->new; my $r = eval { $nt->friends_timeline }; warn "$@\n" if $@; =head1 DESCRIPTION B<Net::Twitter::Lite::Error> encapsulates errors thrown by C<Net::Twitter::Lite>. A C<Net::Twitter::Lite::Error> object will contain an C<HTTP::Response>, and a HASHREF containing Twitter API error information if one was returned by Twitter. =head1 METHODS =over 4 =cut =item new Constructs an C<Net::Twitter::Lite::Error> object with an HTTP::Response and optionally a Twitter error HASH ref. It takes HASH of arguments. Examples: my $e = Net::Twitter::Lite::Error->new(http_response => $res, twitter_error => $te); my $e = Net::Twitter::Lite::Error->new(http_response => $res); =cut sub new { my ($class, %args) = @_; return bless \%args, $class; } =item twitter_error Get or set the encapsulated Twitter API error HASH ref. =cut sub twitter_error { my $self = shift; $self->{twitter_error} = shift if @_; return $self->{twitter_error}; } =item http_response Get or set the encapsulated HTTP::Response instance. =cut sub http_response { my $self = shift; $self->{http_response} = shift if @_; return $self->{http_response}; } =item code Returns the HTTP Status Code from the encapsulated HTTP::Response =cut sub code { my $self = shift; return exists $self->{http_response} && $self->{http_response}->code; } =item message Returns the HTTP Status Message from the encapsulated HTTP::Response =cut sub message { my $self = shift; return exists $self->{http_response} && $self->{http_response}->message; } =item error Returns an error message as a string. The message be the C<error> element of the encapsulated Twitter API HASH ref, if there is one. Otherwise it will return a string containing the HTTP Status Code and Message. If the C<Net::Twitter::Lite::Error> instance does not contain either an HTTP::Response or a Twitter Error HASH ref, or the HTTP::Response has no status code or message, C<error> returns the string '[unknown]'. A Net::Twitter::Lite::Error stringifies to the C<error> message. =cut sub error { my $self = shift; # We MUST stringyfy to something that evaluates to true, or testing $@ will fail! exists $self->{twitter_error} && $self->{twitter_error}{error} || ( exists $self->{http_response} && ($self->code . ": " . $self->message ) ) || '[unknown]'; } 1; __END__ =back =head1 SEE ALSO L<Net::Twitter::Lite> =head1 AUTHOR Marc Mims <marc@questright.com> =head1 LICENSE This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L<perlartistic>. =cut