Skip Menu |
 

This queue is for tickets about the Net-OAuth-Simple CPAN distribution.

Report information
The Basics
Id: 46468
Status: resolved
Priority: 0/
Queue: Net-OAuth-Simple

People
Owner: Nobody in particular
Requestors: MMIMS [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 1.1
Fixed in: (no value)



Subject: Add a browser param to new to allow a pre-configured user agent
Download (untitled) / with headers
text/plain 397b
Attached is a patch against the SVN repos version that adds support for a "browser" param to new. This allows the user to supply a pre-configured user agent. A test is included. I have project that requires an LWP::UserAgent::POE object. I'm currently working around this by setting $client->{browser} after creation. Being able to supply the browser on creation would be much cleaner. -Marc
Subject: oauth.diff
Download oauth.diff
text/x-diff 2.3k
Index: t/browser.t =================================================================== --- t/browser.t (revision 0) +++ t/browser.t (revision 0) @@ -0,0 +1,37 @@ +#!perl -T + +use strict; +use warnings; +use Test::More tests => 3; + +{ + package My::Browser; + use base 'LWP::UserAgent'; + + sub new { + my $class = shift; + my $new = $class->SUPER::new(@_); + + return bless $new, $class; + } +} + +BEGIN { use_ok 'Net::OAuth::Simple' } + +my $browser = My::Browser->new(timeout => 20); + +my $client = Net::OAuth::Simple->new( + tokens => { + consumer_key => 'test', + consumer_secret => 'test', + }, + urls => { + authorization_url => 'http://localhost/auth', + request_token_url => 'http://localhost/req', + access_token_url => 'http://localhost/acc', + }, + browser => $browser, +); + +isa_ok $client->{browser}, 'My::Browser'; +is $client->{browser}->timeout, 20, 'browser is preconfigured' Index: lib/Net/OAuth/Simple.pm =================================================================== --- lib/Net/OAuth/Simple.pm (revision 5504) +++ lib/Net/OAuth/Simple.pm (working copy) @@ -8,6 +8,7 @@ use LWP; use CGI; use Carp; +use Scalar::Util qw(blessed); require Net::OAuth::Request; require Net::OAuth::RequestTokenRequest; require Net::OAuth::AccessTokenRequest; @@ -147,6 +148,11 @@ =back +You can supply an optional C<browser> key. The value must be an LWP::UserAgent +object (or an LWP::UserAgent derived class object, such as an +LWP::UserAgent::POE). Use this parameter if you want to pre-configure the +user agent. + =cut sub new { @@ -154,12 +160,12 @@ my %params = @_; my $client = bless \%params, $class; + # Set up LibWWWPerl for HTTP requests + $client->{browser} ||= LWP::UserAgent->new; + # Verify arguments $client->_check; - # Set up LibWWWPerl for HTTP requests - $client->{browser} = LWP::UserAgent->new; - # Client Object return $client; } @@ -173,9 +179,12 @@ foreach my $param ( @required_constructor_params ) { unless ( defined $self->{tokens}->{$param} ) { - die "Missing required parameter '$param'"; + croak "Missing required parameter '$param'"; } } + + croak "browser must be a LWP::UserAgent" + unless blessed $self->{browser} && $self->{browser}->isa('LWP::UserAgent'); } =head2 authorized
Released 1.5 which includes this patch. Thanks! Simon


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.