diff lib/IMPL/Web/ViewResult.pm @ 407:c6e90e02dd17 ref20150831

renamed Lib->lib
author cin
date Fri, 04 Sep 2015 19:40:23 +0300
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/IMPL/Web/ViewResult.pm	Fri Sep 04 19:40:23 2015 +0300
@@ -0,0 +1,73 @@
+package IMPL::Web::ViewResult;
+use strict;
+
+use IMPL::Const qw(:prop);
+use Carp qw(carp);
+
+use IMPL::declare {
+    base => [
+        'IMPL::Object' => undef,
+        'IMPL::Object::Autofill' => '@_'
+    ],
+    props => [
+        model => PROP_RW,
+        _location => PROP_RW,
+        cookies => PROP_RW,
+        headers => PROP_RW,
+        status  => PROP_RW
+    ]
+};
+
+sub location {
+    carp "location property is absolute";
+    return shift->_location(@_);
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+C<IMPL::Web::ViewResult> - описание представления результата.
+
+=head1 SYNOPSIS
+
+=begin code
+
+sub HttpGet {
+    my ($this, $action) = @_;
+    
+    return IMPL::Web::ViewResult->new(
+        model => $model
+    );
+}
+
+=end code
+
+=head1 DESCRIPTION
+
+Сожержит в себе информацию для представления модели. Также включает поля для
+заголовков ответа C<cookies>, C<headers>, C<status>.
+
+=head1 MEMBERS
+
+=head2 C<[get,set]model>
+
+Модель ресурса, как правило это результат выполнения C<Http> метода.
+
+=head2 C<[get,set]cookies>
+
+Хеш с печеньками, которые будут добавлены в C<HTTP> ответ.
+
+=head2 C<[get,set]headers>
+
+Заголовки которые нужно добавить в заголовки C<HTTP> ответа.
+
+=head2 C<[get,set]status>
+
+Код C<HTTP> ответа. 
+
+=cut