diff Lib/IMPL/Class/Meta.pm @ 49:16ada169ca75

migrating to the Eclipse IDE
author wizard@linux-odin.local
date Fri, 26 Feb 2010 10:49:21 +0300
parents 03e58a454b20
children dc1da0389db7
line wrap: on
line diff
--- a/Lib/IMPL/Class/Meta.pm	Fri Feb 26 01:43:42 2010 +0300
+++ b/Lib/IMPL/Class/Meta.pm	Fri Feb 26 10:49:21 2010 +0300
@@ -1,43 +1,43 @@
-package IMPL::Class::Meta;
-use strict;
-
-my %class_meta;
-
-sub set_meta {
-    my ($class,$meta_data) = @_;
-    $class = ref $class if ref $class;
-    
-    # тут нельзя использовать стандартное исключение, поскольку для него используется
-    # класс IMPL::Object::Accessor, который наследуется от текущего класса
-    die "The meta_data parameter should be an object" if not ref $meta_data;
-    
-    push @{$class_meta{$class}{ref $meta_data}},$meta_data;
-}
-
-sub get_meta {
-    my ($class,$meta_class,$predicate,$deep) = @_;
-    $class = ref $class if ref $class;
-    no strict 'refs';
-    my @result;
-    
-    if ($deep) {
-        @result = map { $_->can('get_meta') ? $_->get_meta($meta_class,$predicate,$deep) : () } @{$class.'::ISA'};
-    }
-    
-    if ($predicate) {
-        push @result,grep( &$predicate($_), map( @{$class_meta{$class}{$_}}, grep( $_->isa($meta_class), keys %{$class_meta{$class} || {}} ) ) );
-    } else {
-        push @result, map( @{$class_meta{$class}{$_} || []}, grep( $_->isa($meta_class), keys %{$class_meta{$class} || {}} ) );
-    }
-    wantarray ? @result : \@result;
-}
-
-=pod
-__PACKAGE_->set_meta($metaObject);
-__PACKAGE_->get_meta('MyMetaClass',sub {
-    my ($item) = @_;
-    $item->Name eq 'Something' ? 1 : 0
-} );
-=cut
-
-1;
\ No newline at end of file
+package IMPL::Class::Meta;
+use strict;
+
+my %class_meta;
+
+sub set_meta {
+    my ($class,$meta_data) = @_;
+    $class = ref $class if ref $class;
+    
+    # тут нельзя использовать стандартное исключение, поскольку для него используется
+    # класс IMPL::Object::Accessor, который наследуется от текущего класса
+    die "The meta_data parameter should be an object" if not ref $meta_data;
+    
+    push @{$class_meta{$class}{ref $meta_data}},$meta_data;
+}
+
+sub get_meta {
+    my ($class,$meta_class,$predicate,$deep) = @_;
+    $class = ref $class if ref $class;
+    no strict 'refs';
+    my @result;
+    
+    if ($deep) {
+        @result = map { $_->can('get_meta') ? $_->get_meta($meta_class,$predicate,$deep) : () } @{$class.'::ISA'};
+    }
+    
+    if ($predicate) {
+        push @result,grep( &$predicate($_), map( @{$class_meta{$class}{$_}}, grep( $_->isa($meta_class), keys %{$class_meta{$class} || {}} ) ) );
+    } else {
+        push @result, map( @{$class_meta{$class}{$_} || []}, grep( $_->isa($meta_class), keys %{$class_meta{$class} || {}} ) );
+    }
+    wantarray ? @result : \@result;
+}
+
+=pod
+__PACKAGE_->set_meta($metaObject);
+__PACKAGE_->get_meta('MyMetaClass',sub {
+    my ($item) = @_;
+    $item->Name eq 'Something' ? 1 : 0
+} );
+=cut
+
+1;