view lib/IMPL/Web/ViewResult.pm @ 423:60c2892a577c ref20150831

working on base class system
author cin
date Mon, 02 Apr 2018 07:35:23 +0300
parents c6e90e02dd17
children
line wrap: on
line source

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