Mercurial > pub > Impl
diff Lib/IMPL/Web/Application/Resource.pm @ 256:32aceba4ee6d
corrected ViewHandlers to handle cookies and headers.
Dirty hacks to handle binary data
RestController doesn't deal with file extensions anymore.
author | sergey |
---|---|
date | Wed, 12 Dec 2012 04:29:50 +0400 |
parents | 827cf96faa1c |
children | 4abda21186cd |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Application/Resource.pm Fri Dec 07 16:58:19 2012 +0400 +++ b/Lib/IMPL/Web/Application/Resource.pm Wed Dec 12 04:29:50 2012 +0400 @@ -1,6 +1,7 @@ package IMPL::Web::Application::Resource; use strict; +use URI; use IMPL::Const qw(:prop); use IMPL::declare { require => { @@ -19,7 +20,6 @@ parent => PROP_RO, model => PROP_RO, id => PROP_RO, - name => PROP_RO, contract => PROP_RO, location => PROP_RO, ] @@ -32,18 +32,15 @@ unless $args{id}; die ArgumentException->new( contract => 'A contract is required' ) unless $args{contract}; - die ArgumentException->new( name => 'A name is required' ) - if $args{parent} && not(length $args{name}); $this->parent( $args{parent} ); $this->model( $args{model} ); $this->id( $args{id} ); $this->contract( $args{contract} ); - $this->name($args{name}); # если расположение явно не указано, то оно вычисляется автоматически, # либо остается не заданным - $this->location( $args{location} || eval { $this->parent->location->Child( $this->name ) } ); + $this->location( $args{location} || eval { $this->parent->location->Child( $this->id ) } ); } sub InvokeHttpVerb { @@ -172,13 +169,6 @@ Обязательное свойство ресурса, идентифицирует его в родительском контейнере, для корневого ресурса может иметь произвольное значение. -=head2 C<[get]name> - -Имя ресурса в адресной строке. При разборе адреса идентификаторы ресурсов могут -не всегда совпадать с именами, например C<http://audio/sonar.mp3> может иметь -идентификатор C<sonar>, а его имя будет C<sonar.mp3>. Однако за частую имя -совпадает с идентификатором. - =head2 C<[get]parent> Ссылка на родительский ресурс, для корневого ресурса не определена.