view Lib/IMPL/Web/ViewResult.pm @ 369:7c784144d2f1

Implemented object metadata class, cleanup
author cin
date Mon, 09 Dec 2013 17:35:34 +0400
parents 6b6d4b2275a1
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