%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/WrapResult.pm |
package Net::Twitter::Lite::WrapResult; $Net::Twitter::Lite::WrapResult::VERSION = '0.12006'; use strict; =head1 NAME Net::Twitter::Lite::WrapResult - Wrap the HTTP response and Twitter result =head1 VERSION version 0.12006 =head1 SYNOPSIS use Net::Twitter::Lite::WithAPIv1_1; my $nt = Net::Twitter::Lite::WithAPIv1_1->new( consumer_key => $consumer_key, consumer_secret => $consumer_secret, access_token => $access_token, access_token_secret => $access_token_secret, wrap_result => 1, ); my $r = $nt->verify_credentials; my $http_response = $r->http_response; my $twitter_result = $r->result; my $rate_limit_remaining = $r->rate_limit_remaining; =head1 DESCRIPTION Often, the result of a Twitter API call, inflated from the JSON body of the HTTP response does not contain all the information you need. Twitter includes meta data, such as rate limiting information, in HTTP response headers. This object wraps both the inflated Twitter result and the HTTP response giving the caller full access to all the meta data. It also provides accessors for the rate limit information. =head1 METHODS =over 4 =item new($twitter_result, $http_response) Constructs an object wrapping the Twitter result and HTTP response. =cut sub new { my ( $class, $twitter_result, $http_response ) = @_; return bless { result => $twitter_result, http_response => $http_response, }, ref $class || $class; } =item result Returns the inflated Twitter API result. =cut sub result { shift->{result} } =item http_response Returns the L<HTTP::Response> object for the API call. =cut sub http_response { shift->{http_response} } # private method my $limit = sub { my ( $self, $which ) = @_; my $res = $self->http_response; $res->header("X-Rate-Limit-$which") || $res->header("X-FeatureRateLimit-$which"); }; =item rate_limit Returns the rate limit, per 15 minute window, for the API endpoint called. Returns undef if no suitable rate limit header is available. =cut sub rate_limit { shift->$limit('Limit') } =item rate_limit_remaining Returns the calls remaining in the current 15 minute window for the API endpoint called. Returns undef if no suitable header is available. =cut sub rate_limit_remaining { shift->$limit('Remaining') } =item rate_limit_reset Returns the unix epoch time time of the next 15 minute window, i.e., when the rate limit will be reset, for the API endpoint called. Returns undef if no suitable header is available. =cut sub rate_limit_reset { shift->$limit('Reset') } 1; __END__ =back =head1 AUTHOR Marc Mims <marc@questright.com> =head1 COPYRIGHT & LICENSE Copyright (c) 2014 Marc Mims <marc@questright.com> This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.