Merge 'trunk' into 'DBIx-Class-current'
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class.pm
index 2228a86..144a495 100644 (file)
@@ -13,19 +13,25 @@ sub component_base_class { 'DBIx::Class' }
 # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
 # brain damage and presumably various other packaging systems too
 
-$VERSION = '0.05007';
+$VERSION = '0.05999_04';
 
 sub MODIFY_CODE_ATTRIBUTES {
     my ($class,$code,@attrs) = @_;
-    unless ($class->can('_attr_cache')) {
-        $class->mk_classdata('_attr_cache');
-        $class->_attr_cache({});
+    unless ($class->can('__attr_cache')) {
+        $class->mk_classdata('__attr_cache');
+        $class->__attr_cache({});
     }
-    my $cache = $class->_attr_cache;
-    $class->_attr_cache->{$code} = [@attrs];
+    $class->__attr_cache->{$code} = [@attrs];
     return ();
 }
 
+sub _attr_cache {
+    my $self = shift;
+    my $cache = $self->can('__attr_cache') ? $self->__attr_cache : {};
+    my $rest = eval { $self->next::method };
+    return $@ ? $cache : { %$cache, %$rest };
+}
+
 1;
 
 =head1 NAME 
@@ -160,12 +166,18 @@ Jesper Krogh
 
 Brandon Black
 
+Christopher H. Laco
+
 Scotty Allen <scotty@scottyallen.com>
 
 sc_
 
 Justin Guenther <guentherj@agr.gc.ca>
 
+Daisuke Murase <typester@cpan.org>
+
+Scott McWhirter (konobi)
+
 =head1 LICENSE
 
 You may distribute this code under the same terms as Perl itself.