package DBIx::Class;
+# important to load early
+use DBIx::Class::_Util;
+
use strict;
use warnings;
$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::');
-
-# FIXME - this is not really necessary, and is in
-# fact going to slow things down a bit
-# However it is the right thing to do in order to get
-# various install bases to highlight their brokenness
-# Remove at some unknown point in the future
-#
-# The oddball BEGIN is there for... reason unknown
-# It does make non-segfaulty difference on pre-5.8.5 perls, so shrug
-BEGIN {
- sub DESTROY { &DBIx::Class::_Util::detected_reinvoked_destructor };
-}
+__PACKAGE__->mk_classaccessor( _skip_namespace_frames =>
+ '^DBIx::Class|^SQL::Abstract|^Try::Tiny|^Class::Accessor::Grouped|^Context::Preserve|^Moose::Meta::'
+);
sub component_base_class { 'DBIx::Class' }
-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 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 : {};
-
- 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 () {