Imported Upstream version 0.11
[libwww-opensearch-perl.git] / lib / WWW / OpenSearch / Agent.pm
diff --git a/lib/WWW/OpenSearch/Agent.pm b/lib/WWW/OpenSearch/Agent.pm
new file mode 100644 (file)
index 0000000..bc5bbec
--- /dev/null
@@ -0,0 +1,68 @@
+package WWW::OpenSearch::Agent;
+
+use strict;
+use warnings;
+
+use base qw( LWP::UserAgent );
+
+use WWW::OpenSearch;
+use WWW::OpenSearch::Response;
+
+=head1 NAME
+
+WWW::OpenSearch::Agent - An agent for doing OpenSearch requests
+
+=head1 SYNOPSIS
+
+=head1 DESCRIPTION
+
+=head1 CONSTRUCTOR
+
+=head2 new( [%options] )
+
+=head1 METHODS
+
+=head2 request( $request | $url, \%params )
+
+=head2 search( )
+
+An alias for request()
+
+=head1 AUTHOR
+
+=over 4
+
+=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2007 by Tatsuhiko Miyagawa and Brian Cassidy
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=cut
+
+sub new {
+    my( $class, @rest ) = @_;
+    return $class->SUPER::new(
+        agent => join( '/', __PACKAGE__, $WWW::OpenSearch::VERSION ),
+        @rest,
+    );
+}
+
+*search = \&request;
+
+sub request {
+    my $self     = shift;
+    my $request  = shift; ;
+    my $response = $self->SUPER::request( $request, @_ );
+
+    # allow regular HTTP::Requests to flow through
+    return $response unless $request->isa( 'WWW::OpenSearch::Request' );
+    return WWW::OpenSearch::Response->new( $response );
+}
+
+1;