Introduce the describe_class_methods() utility function
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class.pm
index f1c80ae..f76419d 100644 (file)
@@ -1,5 +1,8 @@
 package DBIx::Class;
 
+# important to load early
+use DBIx::Class::_Util;
+
 use strict;
 use warnings;
 
@@ -15,15 +18,14 @@ $VERSION = '0.082899_15';
 
 $VERSION = eval $VERSION if $VERSION =~ /_/; # numify for warning-free dev releases
 
-use DBIx::Class::_Util;
 use mro 'c3';
 
 use base qw/DBIx::Class::Componentised DBIx::Class::AccessorGroup/;
-use DBIx::Class::StartupCheck;
 use DBIx::Class::Exception;
 
-__PACKAGE__->mk_group_accessors(inherited => '_skip_namespace_frames');
-__PACKAGE__->_skip_namespace_frames('^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped|^Context::Preserve|^Moose::Meta::');
+__PACKAGE__->mk_classaccessor( _skip_namespace_frames =>
+  '^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped|^Context::Preserve|^Moose::Meta::'
+);
 
 # FIXME - this is not really necessary, and is in
 # fact going to slow things down a bit
@@ -39,36 +41,6 @@ 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_classaccessor('__attr_cache' => {})
-    unless $class->can('__attr_cache');
-  $class->__attr_cache->{$code} = [@attrs];
-  return ();
-}
-
-sub _attr_cache {
-  my $self = shift;
-  my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
-
-  return {
-    %$cache,
-    %{ $self->maybe::next::method || {} },
-  };
-}
-
 # *DO NOT* change this URL nor the identically named =head1 below
 # it is linked throughout the ecosystem
 sub DBIx::Class::_ENV_::HELP_URL () {