comparison Lib/IMPL/Class/Meta.pm @ 279:af8af4b8337e

sync
author sergey
date Mon, 04 Feb 2013 17:16:45 +0400
parents 0f59b2de72af
children c6d0f889ef87
comparison
equal deleted inserted replaced
278:4ddb27ff4a0b 279:af8af4b8337e
1 package IMPL::Class::Meta; 1 package IMPL::Class::Meta;
2 use strict; 2 use strict;
3 3
4 use Carp qw(carp); 4 use Carp qw(carp confess);
5 use IMPL::clone qw(clone); 5 use IMPL::clone qw(clone);
6 6
7 my %class_meta; 7 my %class_meta;
8 my %class_data; 8 my %class_data;
9 9
10 sub SetMeta { 10 sub SetMeta {
11 my ($class,$meta_data) = @_; 11 my ($class,$meta_data) = @_;
12 $class = ref $class if ref $class; 12 $class = ref $class || $class;
13 13
14 # тут нельзя использовать стандартное исключение, поскольку для него используется 14 # тут нельзя использовать стандартное исключение, поскольку для него используется
15 # класс IMPL::Object::Accessor, который наследуется от текущего класса 15 # класс IMPL::Object::Accessor, который наследуется от текущего класса
16 die "The meta_data parameter should be an object" if not ref $meta_data; 16 confess "The meta_data parameter should be an object" if not ref $meta_data;
17 17
18 push @{$class_meta{$class}{ref $meta_data}},$meta_data; 18 push @{$class_meta{$class}{ref $meta_data}},$meta_data;
19 } 19 }
20 20
21 sub set_meta { 21 sub set_meta {