X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass.pm;h=cdcbcbbefd824cc028a97d4ba3c3f27bebed97a8;hb=HEAD;hp=c12a343385cf249123ce7809f656357a5f94b7e9;hpb=140bcb6a5e00a248c375b741579ed09e36604f64;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class.pm b/lib/DBIx/Class.pm index c12a343..cdcbcbb 100644 --- a/lib/DBIx/Class.pm +++ b/lib/DBIx/Class.pm @@ -1,5 +1,8 @@ package DBIx::Class; +# important to load early +use DBIx::Class::_Util; + use strict; use warnings; @@ -11,56 +14,27 @@ our $VERSION; # $VERSION declaration must stay up here, ahead of any other package # declarations, as to not confuse various modules attempting to determine # this ones version, whether that be s.c.o. or Module::Metadata, etc -$VERSION = '0.082899_15'; +$VERSION = '0.082899_25'; $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 }; -} - -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} || [] } -} +__PACKAGE__->mk_classaccessor( + _skip_namespace_frames => join( '|', map { '^' . $_ } qw( + DBIx::Class + SQL::Abstract + SQL::Translator + Try::Tiny + Class::Accessor::Grouped + Context::Preserve + Moose::Meta:: + )), +); -sub _attr_cache { - my $self = shift; - my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {}; - - return { - %$cache, - %{ $self->maybe::next::method || {} }, - }; -} +sub component_base_class { 'DBIx::Class' } # *DO NOT* change this URL nor the identically named =head1 below # it is linked throughout the ecosystem