summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-07-22 14:41:32 -0500
committerJesse Luehrs <doy@tozt.net>2012-07-22 14:41:32 -0500
commitae8b38ecdccef81043f70bfa00dbaa1c664510ad (patch)
tree9a8f543516b5200ef5a83dd26ee7dfbd6aef4b12 /lib
parent69b58eba5bc8a01e27c74d6d2346738fdf9f8eb5 (diff)
downloadweb-request-ae8b38ecdccef81043f70bfa00dbaa1c664510ad.tar.gz
web-request-ae8b38ecdccef81043f70bfa00dbaa1c664510ad.zip
allow changing the encoding
Diffstat (limited to 'lib')
-rw-r--r--lib/Web/Request.pm17
1 files changed, 16 insertions, 1 deletions
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'],
);