comparison Lib/IMPL/Object/Meta.pm @ 63:76b878ad6596

Added serialization support for the IMPL::Object::List More intelligent Exception message Fixed encoding support in the actions Improoved tests Minor fixes
author wizard
date Mon, 15 Mar 2010 02:38:09 +0300
parents 16ada169ca75
children 42fbb38d4a48
comparison
equal deleted inserted replaced
62:c64bd1bf727d 63:76b878ad6596
5 use base qw(IMPL::Object); 5 use base qw(IMPL::Object);
6 use IMPL::Class::Property; 6 use IMPL::Class::Property;
7 use IMPL::Class::Property::Direct; 7 use IMPL::Class::Property::Direct;
8 8
9 BEGIN { 9 BEGIN {
10 public _direct property Container => prop_get; 10 public _direct property Container => prop_get | owner_set;
11 } 11 }
12 12
13 sub meta { 13 sub meta {
14 my $class = shift; 14 my $class = shift;
15 my $caller = caller; 15 my $caller = caller;
16 my $meta = $class->surrogate(); 16 my $meta = $class->surrogate();
17 $meta->{$Container} = $caller; 17 $meta->IMPL::Object::Meta::Container(caller);
18 $meta->callCTOR(@_); 18 $meta->callCTOR(@_);
19 $caller->set_meta($meta); 19 $caller->set_meta($meta);
20 } 20 }
21 21
22 1;
22 23
23 1; 24 __END__
25
26 =pod
27
28 =head1 SYNOPSIS
29
30 package Foo;
31
32 meta BarAttribute('Simple bar attribute'); #mark Foo with BarAttribute
33
34 =head1 DESCRIPTION
35
36 Базовый класс для мета-свойств класса. Определяет оператор C< meta > для создания метаданных в вызвавшем классе.
37
38 =head1 MEMBERS
39
40 =over
41
42 =item C< Container >
43
44 Свойство заполняется до вызова конструктора и содержит имя модуля к которому применяется атрибут.
45
46 =back
47
48 =cut