view Lib/IMPL/Object/Meta.pm @ 144:b56ebc31bf18

Empty nodes no more created while transforming a post request to the DOM document minor speed improvements to the object CTOR caching Added support for a secure processing (and 'laundering' ) a CGI parameters Many minor fixes
author wizard
date Tue, 13 Jul 2010 02:05:38 +0400
parents 42fbb38d4a48
children 4267a2ac3d46
line wrap: on
line source

package IMPL::Object::Meta;
use strict;
use warnings;

use base qw(IMPL::Object);
use IMPL::Class::Property;
use IMPL::Class::Property::Direct;

BEGIN {
    public _direct property Container => prop_get | owner_set;
}

sub meta {
    my $class = shift;
    my $caller = caller;
    my $meta = $class->surrogate();
    $meta->IMPL::Object::Meta::Container(scalar caller);
    $meta->callCTOR(@_);
    $caller->set_meta($meta);
}

1;

__END__

=pod

=head1 SYNOPSIS

package Foo;

meta BarAttribute('Simple bar attribute'); #mark Foo with BarAttribute

=head1 DESCRIPTION

Базовый класс для мета-свойств класса. Определяет оператор C< meta > для создания метаданных в вызвавшем классе.

=head1 MEMBERS

=over

=item C< Container >

Свойство заполняется до вызова конструктора и содержит имя модуля к которому применяется атрибут.

=back

=cut