Add preliminary non-core attribute support
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class.pm
index 79d7630..c12a343 100644 (file)
@@ -39,26 +39,19 @@ BEGIN {
 
 sub component_base_class { 'DBIx::Class' }
 
-my $mro_already_set;
-sub inject_base {
-
-  # only examine from $_[2] onwards
-  # C::C3::C already sets c3 on $_[1] and $_[0] is irrelevant
-  mro::set_mro( $_ => 'c3' ) for grep {
-    $mro_already_set->{$_} ? 0 : ( $mro_already_set->{$_} = 1 )
-  } @_[2 .. $#_];
-
-  shift->next::method(@_);
-}
-
 sub MODIFY_CODE_ATTRIBUTES {
   my ($class,$code,@attrs) = @_;
-  $class->mk_classdata('__attr_cache' => {})
+  $class->mk_classaccessor('__attr_cache' => {})
     unless $class->can('__attr_cache');
   $class->__attr_cache->{$code} = [@attrs];
   return ();
 }
 
+sub FETCH_CODE_ATTRIBUTES {
+  my ($class,$code) = @_;
+  @{ $class->_attr_cache->{$code} || [] }
+}
+
 sub _attr_cache {
   my $self = shift;
   my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};