X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FWWW%2FOpenSearch%2FUrl.pm;h=7c04b821b08cdd3bc09edd01372309dbfc6042ed;hb=eec6e268e77edcb015b3d858df97ab46f1d904e4;hp=6e4c27f7cadcc09b67ac06721d43fcf756eb444a;hpb=1fc70f0d6badbef9bb483990d761d1446d52cbb2;p=libwww-opensearch-perl.git diff --git a/lib/WWW/OpenSearch/Url.pm b/lib/WWW/OpenSearch/Url.pm index 6e4c27f..7c04b82 100644 --- a/lib/WWW/OpenSearch/Url.pm +++ b/lib/WWW/OpenSearch/Url.pm @@ -61,31 +61,32 @@ it under the same terms as Perl itself. =cut sub new { - my( $class, %options ) = @_; - + my ( $class, %options ) = @_; + $options{ method } ||= 'GET'; $options{ template } = URI::Template->new( $options{ template } ); - + my $self = $class->SUPER::new( \%options ); return $self; } sub prepare_query { - my( $self, $params ) = @_; + my ( $self, $params ) = @_; my $tmpl = $self->template; - - $params->{ startIndex } ||= 1; - $params->{ startPage } ||= 1; - $params->{ language } ||= '*'; + + for ( qw( startIndex startPage ) ) { + $params->{ $_ } = 1 if !defined $params->{ $_ }; + } + $params->{ language } ||= '*'; $params->{ outputEncoding } ||= 'UTF-8'; - $params->{ inputEncoding } ||= 'UTF-8'; - + $params->{ inputEncoding } ||= 'UTF-8'; + # fill the uri template my $url = $tmpl->process( %$params ); # attempt to handle POST - if( $self->method eq 'post' ) { + if ( $self->method eq 'post' ) { my $post = $self->params; for my $key ( keys %$post ) { $post->{ $key } =~ s/{(.+)}/$params->{ $1 } || ''/eg; @@ -93,7 +94,7 @@ sub prepare_query { return $url, [ %$post ]; } - + return $url; }