Mercurial > pub > Impl
comparison Lib/IMPL/Web/QueryHandler/JsonFormat.pm @ 128:08753833173d
Fixed a error handling issue in JSON output: errors are correctly transfered
A complete documentation for a IMPL::Web::Application::ControllerUnit
author | wizard |
---|---|
date | Tue, 15 Jun 2010 02:41:07 +0400 |
parents | 41e9d9ea3db5 |
children | 44977efed303 |
comparison
equal
deleted
inserted
replaced
127:0dce0470a3d8 | 128:08753833173d |
---|---|
53 | 53 |
54 return [ | 54 return [ |
55 map { $this->Transform($_) } @$object | 55 map { $this->Transform($_) } @$object |
56 ]; | 56 ]; |
57 }, | 57 }, |
58 'IMPL::Exception' => sub { | |
59 my ($this,$object) = @_; | |
60 | |
61 return { | |
62 type => $object->type, | |
63 message => $object->Message, | |
64 arguments => $this->Transform(scalar $object->Args) | |
65 }; | |
66 }, | |
67 -plain => sub { | 58 -plain => sub { |
68 $_[1]; | 59 $_[1]; |
69 }, | 60 }, |
70 -default => sub { | 61 -default => sub { |
71 my ($this,$object) = @_; | 62 my ($this,$object) = @_; |
72 | 63 |
73 return "$object" unless $object->isa('IMPL::Object::Abstract'); | 64 return "$object" unless $object->isa('IMPL::Object::Abstract'); |
65 | |
66 if ( $object->isa(typeof IMPL::Exception) ) { | |
67 return { | |
68 type => $object->typeof, | |
69 message => $object->Message, | |
70 arguments => $this->Transform(scalar $object->Args) | |
71 }; | |
72 } | |
74 | 73 |
75 my $propList = $propListCache{ref $object}; | 74 my $propList = $propListCache{ref $object}; |
76 unless ( $propList ) { | 75 unless ( $propList ) { |
77 my %props = map { | 76 my %props = map { |
78 $_->Name, (ref $_->Mutators ? 0 : ($_->Mutators & prop_list)) | 77 $_->Name, (ref $_->Mutators ? 0 : ($_->Mutators & prop_list)) |