Mercurial > pub > Impl
diff Lib/IMPL/Web/Application/CustomResource.pm @ 248:814d755e5d12
Minor fixes
author | sergey |
---|---|
date | Tue, 06 Nov 2012 00:58:15 +0400 |
parents | abc7c26bf615 |
children | 9b25e1f50144 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Application/CustomResource.pm Wed Oct 31 04:18:35 2012 +0400 +++ b/Lib/IMPL/Web/Application/CustomResource.pm Tue Nov 06 00:58:15 2012 +0400 @@ -5,6 +5,7 @@ use IMPL::declare { require => { + Factory => 'IMPL::Object::Factory', CustomResourceContract => 'IMPL::Web::Application::CustomResourceContract' }, base => [ @@ -32,6 +33,18 @@ ); } +sub CreateContract { + my ($self, %args) = @_; + + $self->contractFactory->new( + resourceFactory => Factory->new( + $self, + \%args + ), + resources => [ $self->GetChildResources() ] + ) +} + sub GetChildResources { } @@ -90,6 +103,14 @@ Создает новый экземпляр контракта, используя фабрику из свойства C<contractFactory>. +=head2 C<[static]CreateContract(%args)> + +Создает новый контракт, который при создании ресурсов будет передавать им в +конструкторе параметры C<%args>. Реализуется при помощи C<IMPL::Object::Factory> +которой задается параметр ссылка на C<%args>, т.о. при создании ресурса, ему в +конструкторе будет передан список из ключей и значений хеша C<%args>, а затем +остальные аргументы. + =head2 C<[static]GetChildResources()> Статический метод, который должны переопределять новые классы ресурсов, у