From ae8b38ecdccef81043f70bfa00dbaa1c664510ad Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 22 Jul 2012 14:41:32 -0500 Subject: allow changing the encoding --- lib/Web/Request.pm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/Web/Request.pm b/lib/Web/Request.pm index 29c105c..e63d245 100644 --- a/lib/Web/Request.pm +++ b/lib/Web/Request.pm @@ -228,6 +228,7 @@ has content => ( is => 'ro', isa => 'Str', lazy => 1, + clearer => '_clear_content', default => sub { my $self = shift; @@ -241,6 +242,7 @@ has query_parameters => ( is => 'ro', isa => 'HashRef[Str]', lazy => 1, + clearer => '_clear_query_parameters', default => sub { my $self = shift; @@ -258,6 +260,7 @@ has all_query_parameters => ( is => 'ro', isa => 'HashRef[ArrayRef[Str]]', lazy => 1, + clearer => '_clear_all_query_parameters', default => sub { my $self = shift; @@ -276,6 +279,7 @@ has body_parameters => ( is => 'ro', isa => 'HashRef[Str]', lazy => 1, + clearer => '_clear_body_parameters', default => sub { my $self = shift; @@ -295,6 +299,7 @@ has all_body_parameters => ( is => 'ro', isa => 'HashRef[ArrayRef[Str]]', lazy => 1, + clearer => '_clear_all_body_parameters', default => sub { my $self = shift; @@ -355,15 +360,25 @@ has all_uploads => ( ); has encoding => ( - is => 'ro', + is => 'rw', isa => 'Str', default => 'iso-8859-1', + trigger => sub { + my $self = shift; + $self->_clear_encoding_obj; + $self->_clear_content; + $self->_clear_query_parameters; + $self->_clear_all_query_parameters; + $self->_clear_body_parameters; + $self->_clear_all_body_parameters; + }, ); has _encoding_obj => ( is => 'ro', isa => 'Object', # no idea what this should be lazy => 1, + clearer => '_clear_encoding_obj', default => sub { Encode::find_encoding(shift->encoding) }, handles => ['decode', 'encode'], ); -- cgit v1.2.3-54-g00ecf