X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FRequest.pm;h=a8b98699d1093adf2ac0832b8521e0ad6064a26b;hb=21465c884872c1ec8c30acd72796445f9eaacb31;hp=fe05db7ea12dfeee914b679adbb968765cd73595;hpb=3ad654e0c538876403f3e664f0d9f302ef470770;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Request.pm b/lib/Catalyst/Request.pm index fe05db7..a8b9869 100644 --- a/lib/Catalyst/Request.pm +++ b/lib/Catalyst/Request.pm @@ -38,7 +38,9 @@ Catalyst::Request - Catalyst Request Class $req->content_encoding; $req->content_length; $req->content_type; + $req->cookie; $req->cookies; + $req->full_uri; $req->header; $req->headers; $req->hostname; @@ -130,18 +132,18 @@ sub cookie { my $self = shift; if ( @_ == 0 ) { - return keys %{ $self->cookie }; + return keys %{ $self->cookies }; } if ( @_ == 1 ) { my $name = shift; - unless ( exists $self->cookie->{$name} ) { + unless ( exists $self->cookies->{$name} ) { return undef; } - return $self->cookie->{$name}; + return $self->cookies->{$name}; } } @@ -151,6 +153,31 @@ Returns a reference to a hash containing the cookies. print $c->request->cookies->{mycookie}->value; +=item $req->full_uri + +Returns the complete URI, with the parameter query string. + +=cut + +sub full_uri { + my $self = shift; + my $full_uri = $self->uri; + + if ( scalar $self->param ) { + my @params; + foreach my $arg ( sort keys %{ $self->params } ) { + if ( ref $self->params->{$arg} ) { + my $list = $self->params->{$arg}; + push @params, map { "$arg=" . $_ } sort @{$list}; + } else { + push @params, "$arg=" . $self->params->{$arg}; + } + } + $full_uri .= '?' . join( '&', @params ); + } + return $full_uri; +} + =item $req->header Shortcut to $req->headers->header @@ -264,7 +291,7 @@ Shortcut for $req->parameters. =item $req->parameters Returns a reference to a hash containing parameters. Values can -be either a scalar or a arrayref containing scalars. +be either a scalar or an arrayref containing scalars. print $c->request->parameters->{field}; print $c->request->parameters->{field}->[0];