X-Git-Url: http://erislabs.net/gitweb/?p=liburi-template-perl.git;a=blobdiff_plain;f=lib%2FURI%2FTemplate.pm;h=79bffdf143c710c7688a504a8be6c4bc2e89ddd1;hp=f31f9736f9673d47e31be7d5a56a5f7805a52fa2;hb=83c3737484d89a57cfd230d6a4039a269e212035;hpb=0bf9e38bd59ec2d30d98cdd5b1ff6659bc776761 diff --git a/lib/URI/Template.pm b/lib/URI/Template.pm index f31f973..79bffdf 100644 --- a/lib/URI/Template.pm +++ b/lib/URI/Template.pm @@ -3,7 +3,7 @@ package URI::Template; use strict; use warnings; -our $VERSION = '0.09'; +our $VERSION = '0.10'; use URI; use URI::Escape (); @@ -114,7 +114,7 @@ inflate the result to a URI object. sub process_to_string { my $self = shift; - if( ref $_[ 0 ] ) { + if ( ref $_[ 0 ] ) { return $self->_process_by_position( @_ ); } else { @@ -130,7 +130,8 @@ sub _process_by_key { # fix undef vals for my $var ( @vars ) { - $params{ $var } = defined $params{ $var } + $params{ $var } + = defined $params{ $var } ? URI::Escape::uri_escape( $params{ $var }, $unsafe ) : ''; } @@ -167,11 +168,11 @@ sub deparse { my $self = shift; my $uri = shift; - if( !$self->{ deparse_re } ) { - my $templ = $self->as_string; - $self->{ vars_list } = [ $templ =~ /{(.+?)}/g ]; - $templ =~ s/{.+?}/(.+?)/g; - $self->{ deparse_re } = qr/$templ/; + if ( !$self->{ deparse_re } ) { + my $templ = $self->as_string; + $self->{ vars_list } = [ $templ =~ /{(.+?)}/g ]; + $templ =~ s/{.+?}/(.+?)/g; + $self->{ deparse_re } = qr/$templ/; } my @matches = $uri =~ $self->{ deparse_re };