Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Net::Twitter::Role::RateLimit;
- use Moose::Role;
- use namespace::autoclean;
- requires qw/ua/;
- has rate_remaining => ( isa => 'Int', is => 'rw', init_arg => undef, lazy => 1,
- default => sub { shift->_ensure_rate('rate_remaining') } );
- has rate_reset => ( isa => 'Int', is => 'rw', init_arg => undef, lazy => 1,
- default => sub { shift->_ensure_rate('rate_reset' ) } );
- has rate_limit => ( isa => 'Int', is => 'rw', init_arg => undef, lazy => 1,
- default => sub { shift->_ensure_rate('rate_limit' ) } );
- sub _ensure_rate {
- my ( $self, $attr ) = @_;
- my $r = $self->rate_limit_status || return;
- return $self->{$attr};
- }
- around rate_limit_status => sub {
- my $orig = shift;
- my $self = shift;
- my $r = $self->$orig(@_) || return;
- @{$self}{qw/rate_remaining rate_reset rate_limit/} =
- @{$r}{qw/remaining_hits reset_time_in_seconds hourly_limit/};
- return $r;
- };
Add Comment
Please, Sign In to add comment