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()>
 
 Статический метод, который должны переопределять новые классы ресурсов, у