Broke everything (C3 branch)
Matt S Trout [Tue, 15 Nov 2005 09:05:09 +0000 (09:05 +0000)]
19 files changed:
lib/DBIx/Class/CDBICompat/AccessorMapping.pm
lib/DBIx/Class/CDBICompat/AutoUpdate.pm
lib/DBIx/Class/CDBICompat/ColumnCase.pm
lib/DBIx/Class/CDBICompat/HasMany.pm
lib/DBIx/Class/CDBICompat/ImaDBI.pm
lib/DBIx/Class/CDBICompat/LazyLoading.pm
lib/DBIx/Class/CDBICompat/LiveObjectIndex.pm
lib/DBIx/Class/CDBICompat/MightHave.pm
lib/DBIx/Class/CDBICompat/TempColumns.pm
lib/DBIx/Class/CDBICompat/Triggers.pm
lib/DBIx/Class/Componentised.pm
lib/DBIx/Class/InflateColumn.pm
lib/DBIx/Class/ObjectCache.pm
lib/DBIx/Class/PK/Auto.pm
lib/DBIx/Class/Relationship/Accessor.pm
lib/DBIx/Class/Relationship/Base.pm
lib/DBIx/Class/Relationship/CascadeActions.pm
lib/DBIx/Class/Relationship/ProxyMethods.pm
lib/DBIx/Class/UUIDColumns.pm

index 2489d3f..e1300a3 100644 (file)
@@ -8,7 +8,7 @@ use NEXT;
 sub mk_group_accessors {
   my ($class, $group, @cols) = @_;
   unless ($class->can('accessor_name') || $class->can('mutator_name')) {
-    return $class->NEXT::ACTUAL::mk_group_accessors($group => @cols);
+    return $class->next::method($group => @cols);
   }
   foreach my $col (@cols) {
     my $ro_meth = ($class->can('accessor_name')
@@ -19,7 +19,7 @@ sub mk_group_accessors {
                     : $col);
     #warn "$col $ro_meth $wo_meth";
     if ($ro_meth eq $wo_meth) {
-      $class->NEXT::ACTUAL::mk_group_accessors($group => [ $ro_meth => $col ]);
+      $class->next::method($group => [ $ro_meth => $col ]);
     } else {
       $class->mk_group_ro_accessors($group => [ $ro_meth => $col ]);
       $class->mk_group_wo_accessors($group => [ $wo_meth => $col ]);
@@ -43,7 +43,7 @@ sub create {
       $att{$col} = delete $attrs->{$mut} if exists $attrs->{$mut};
     }
   }
-  return $class->NEXT::ACTUAL::create({ %$attrs, %att }, @rest);
+  return $class->next::method({ %$attrs, %att }, @rest);
 }
 
 1;
index fb33a0a..10076c6 100644 (file)
@@ -9,7 +9,7 @@ __PACKAGE__->mk_classdata('__AutoCommit');
 
 sub set_column {
   my $self = shift;
-  my $ret = $self->NEXT::set_column(@_);
+  my $ret = $self->next::method(@_);
   $self->update if ($self->autoupdate && $self->{_in_storage});
   return $ret;
 }
index 4e65117..edea63a 100644 (file)
@@ -6,61 +6,61 @@ use NEXT;
 
 sub _register_column_group {
   my ($class, $group, @cols) = @_;
-  return $class->NEXT::ACTUAL::_register_column_group($group => map lc, @cols);
+  return $class->next::method($group => map lc, @cols);
 }
 
 sub _register_columns {
   my ($class, @cols) = @_;
-  return $class->NEXT::ACTUAL::_register_columns(map lc, @cols);
+  return $class->next::method(map lc, @cols);
 }
 
 sub has_a {
   my ($class, $col, @rest) = @_;
-  $class->NEXT::ACTUAL::has_a(lc($col), @rest);
+  $class->next::method(lc($col), @rest);
   $class->mk_group_accessors('inflated_column' => $col);
   return 1;
 }
 
 sub has_many {
   my ($class, $rel, $f_class, $f_key, @rest) = @_;
-  return $class->NEXT::ACTUAL::has_many($rel, $f_class, ( ref($f_key) ? 
+  return $class->next::method($rel, $f_class, ( ref($f_key) ? 
                                                           $f_key : 
                                                           lc($f_key) ), @rest);
 }
 
 sub get_inflated_column {
   my ($class, $get, @rest) = @_;
-  return $class->NEXT::ACTUAL::get_inflated_column(lc($get), @rest);
+  return $class->next::method(lc($get), @rest);
 }
 
 sub store_inflated_column {
   my ($class, $set, @rest) = @_;
-  return $class->NEXT::ACTUAL::store_inflated_column(lc($set), @rest);
+  return $class->next::method(lc($set), @rest);
 }
 
 sub set_inflated_column {
   my ($class, $set, @rest) = @_;
-  return $class->NEXT::ACTUAL::set_inflated_column(lc($set), @rest);
+  return $class->next::method(lc($set), @rest);
 }
 
 sub get_column {
   my ($class, $get, @rest) = @_;
-  return $class->NEXT::ACTUAL::get_column(lc($get), @rest);
+  return $class->next::method(lc($get), @rest);
 }
 
 sub set_column {
   my ($class, $set, @rest) = @_;
-  return $class->NEXT::ACTUAL::set_column(lc($set), @rest);
+  return $class->next::method(lc($set), @rest);
 }
 
 sub store_column {
   my ($class, $set, @rest) = @_;
-  return $class->NEXT::ACTUAL::store_column(lc($set), @rest);
+  return $class->next::method(lc($set), @rest);
 }
 
 sub find_column {
   my ($class, $col) = @_;
-  return $class->NEXT::ACTUAL::find_column(lc($col));
+  return $class->next::method(lc($col));
 }
 
 sub _mk_group_accessors {
@@ -73,25 +73,25 @@ sub _mk_group_accessors {
     next if defined &{"${class}::${acc}"};
     push(@extra, [ lc $acc => $field ]);
   }
-  return $class->NEXT::ACTUAL::_mk_group_accessors($type, $group,
+  return $class->next::method($type, $group,
                                                      @fields, @extra);
 }
 
 sub _cond_key {
   my ($class, $attrs, $key, @rest) = @_;
-  return $class->NEXT::ACTUAL::_cond_key($attrs, lc($key), @rest);
+  return $class->next::method($attrs, lc($key), @rest);
 }
 
 sub _cond_value {
   my ($class, $attrs, $key, @rest) = @_;
-  return $class->NEXT::ACTUAL::_cond_value($attrs, lc($key), @rest);
+  return $class->next::method($attrs, lc($key), @rest);
 }
 
 sub new {
   my ($class, $attrs, @rest) = @_;
   my %att;
   $att{lc $_} = $attrs->{$_} for keys %$attrs;
-  return $class->NEXT::ACTUAL::new(\%att, @rest);
+  return $class->next::method(\%att, @rest);
 }
 
 1;
index 3f745f6..3d402b1 100644 (file)
@@ -19,7 +19,7 @@ sub has_many {
     $args->{cascade_delete} = 0;
   }
 
-  $class->NEXT::has_many($rel, $f_class, $f_key, $args);
+  $class->next::method($rel, $f_class, $f_key, $args);
 
   if (@f_method) {
     no strict 'refs';
index b77ba18..3a17281 100644 (file)
@@ -62,7 +62,7 @@ sub connection {
   my ($class, @info) = @_;
   $info[3] = { %{ $info[3] || {}} };
   $info[3]->{RootClass} = 'DBIx::ContextualFetch';
-  return $class->NEXT::connection(@info);
+  return $class->next::method(@info);
 }
 
 sub __driver {
index 6a33eff..44c5b3a 100644 (file)
@@ -15,7 +15,7 @@ sub get_column {
                            && $_ ne 'All' }
                    keys %{ $self->_column_groups || {} });
   }
-  $self->NEXT::get_column(@_[1..$#_]);
+  $self->next::method(@_[1..$#_]);
 }
 
 sub _flesh {
index 8ebdf12..7d04710 100644 (file)
@@ -33,7 +33,7 @@ sub clear_object_index {
 
 sub insert {
   my ($self, @rest) = @_;
-  $self->NEXT::ACTUAL::insert(@rest);
+  $self->next::method(@rest);
     # Because the insert will die() if it can't insert into the db (or should)
     # we can be sure the object *was* inserted if we got this far. In which
     # case, given primary keys are unique and ID only returns a
@@ -53,7 +53,7 @@ sub insert {
 
 sub _row_to_object {
   my ($class, @rest) = @_;
-  my $new = $class->NEXT::ACTUAL::_row_to_object(@rest);
+  my $new = $class->next::method(@rest);
   if (my $key = $new->ID) {
     #warn "Key $key";
     my $live = $class->live_object_index;
@@ -70,11 +70,11 @@ sub discard_changes {
   my ($self) = @_;
   if (my $key = $self->ID) {
     $self->remove_from_object_index;
-    my $ret = $self->NEXT::ACTUAL::discard_changes;
+    my $ret = $self->next::method;
     $self->live_object_index->{$key} = $self if $self->in_storage;
     return $ret;
   } else {
-    return $self->NEXT::ACTUAL::discard_changes;
+    return $self->next::method;
   }
 }
 
index e661f6b..55e97e9 100644 (file)
@@ -6,9 +6,9 @@ use warnings;
 sub might_have {
   my ($class, $rel, $f_class, @columns) = @_;
   if (ref $columns[0] || !defined $columns[0]) {
-    return $class->NEXT::might_have($rel, $f_class, @columns);
+    return $class->next::method($rel, $f_class, @columns);
   } else {
-    return $class->NEXT::might_have($rel, $f_class, undef,
+    return $class->next::method($rel, $f_class, undef,
                                      { proxy => \@columns });
   }
 }
index a1f7d6d..6de7fd3 100644 (file)
@@ -15,7 +15,7 @@ sub _add_column_group {
     $tmp{$_} = 1 for @cols;
     $class->_temp_columns(\%tmp);
   } else {
-    return $class->NEXT::ACTUAL::_add_column_group($group, @cols);
+    return $class->next::method($group, @cols);
   }
 }
 
@@ -25,7 +25,7 @@ sub new {
   foreach my $key (keys %$attrs) {
     $temp{$key} = delete $attrs->{$key} if $class->_temp_columns->{$key};
   }
-  my $new = $class->NEXT::ACTUAL::new($attrs, @rest);
+  my $new = $class->next::method($attrs, @rest);
   foreach my $key (keys %temp) {
     $new->set_temp($key, $temp{$key});
   }
@@ -36,7 +36,7 @@ sub new {
 sub find_column {
   my ($class, $col, @rest) = @_;
   return $col if $class->_temp_columns->{$col};
-  return $class->NEXT::ACTUAL::find_column($col, @rest);
+  return $class->next::method($col, @rest);
 }
 
 sub get_temp {
index 3bf8070..0c06950 100644 (file)
@@ -7,7 +7,7 @@ use Class::Trigger;
 sub insert {
   my $self = shift;
   $self->call_trigger('before_create');
-  $self->NEXT::ACTUAL::insert(@_);
+  $self->next::method(@_);
   $self->call_trigger('after_create');
   return $self;
 }
@@ -17,7 +17,7 @@ sub update {
   $self->call_trigger('before_update');
   my @to_update = keys %{$self->{_dirty_columns} || {}};
   return -1 unless @to_update;
-  $self->NEXT::ACTUAL::update(@_);
+  $self->next::method(@_);
   $self->call_trigger('after_update');
   return $self;
 }
@@ -25,7 +25,7 @@ sub update {
 sub delete {
   my $self = shift;
   $self->call_trigger('before_delete') if ref $self;
-  $self->NEXT::ACTUAL::delete(@_);
+  $self->next::method(@_);
   $self->call_trigger('after_delete') if ref $self;
   return $self;
 }
@@ -34,7 +34,7 @@ sub store_column {
   my ($self, $column, $value, @rest) = @_;
   my $vals = { $column => $value };
   $self->call_trigger("before_set_${column}", $value, $vals);
-  return $self->NEXT::ACTUAL::store_column($column, $vals->{$column});
+  return $self->next::method($column, $vals->{$column});
 }
 
 1;
index 72dd6f2..f83bd22 100644 (file)
@@ -1,11 +1,14 @@
 package DBIx::Class::Componentised;
 
+use Class::C3;
+
 sub inject_base {
   my ($class, $target, @to_inject) = @_;
   {
     no strict 'refs';
     unshift(@{"${target}::ISA"}, grep { $target ne $_ } @to_inject);
   }
+  eval "package $target; use Class::C3;";
 }
 
 sub load_components {
index 01d9e33..7619e5a 100644 (file)
@@ -75,7 +75,7 @@ sub new {
       $attrs->{$key} = $class->_deflated_column($key, $attrs->{$key});
     }
   }
-  return $class->NEXT::ACTUAL::new($attrs, @rest);
+  return $class->next::method($attrs, @rest);
 }
 
 1;
index 39fb218..5035153 100644 (file)
@@ -33,14 +33,14 @@ implements the required C<get>, C<set>, and C<remove> methods.
 
 sub insert {
   my $self = shift;
-  $self->NEXT::ACTUAL::insert(@_);
+  $self->next::method(@_);
   $self->_insert_into_cache if $self->cache;  
   return $self;
 }
 
 sub find {
   my ($self,@vals) = @_;
-  return $self->NEXT::ACTUAL::find(@vals) unless $self->cache;
+  return $self->next::method(@vals) unless $self->cache;
   
   # this is a terrible hack here. I know it can be improved.
   # but, it's a start anyway. probably find in PK.pm needs to
@@ -62,14 +62,14 @@ sub find {
     return $object;
   }
   
-  $object = $self->NEXT::ACTUAL::find(@vals);
+  $object = $self->next::method(@vals);
   $object->_insert_into_cache if $object;
   return $object;
 }
 
 sub update {
   my $self = shift;
-  my $new = $self->NEXT::ACTUAL::update(@_);
+  my $new = $self->next::method(@_);
   $self->_insert_into_cache if $self->cache;
   return;
 }
@@ -77,12 +77,12 @@ sub update {
 sub delete {
   my $self = shift;
   $self->cache->remove($self->ID) if $self->cache;
-  return $self->NEXT::ACTUAL::delete(@_);
+  return $self->next::method(@_);
 }
 
 sub _row_to_object {
   my $self = shift;
-  my $new = $self->NEXT::ACTUAL::_row_to_object(@_);
+  my $new = $self->next::method(@_);
   $new->_insert_into_cache if $self->cache;
   return $new;
 }
index c2027cc..fd2531b 100644 (file)
@@ -31,7 +31,7 @@ primary keys.
 
 sub insert {
   my ($self, @rest) = @_;
-  my $ret = $self->NEXT::ACTUAL::insert(@rest);
+  my $ret = $self->next::method(@rest);
 
   # if all primaries are already populated, skip auto-inc
   my $populated = 0;
index 069da80..f641351 100644 (file)
@@ -5,7 +5,7 @@ use warnings;
 
 sub add_relationship {
   my ($class, $rel, @rest) = @_;
-  my $ret = $class->NEXT::ACTUAL::add_relationship($rel => @rest);
+  my $ret = $class->next::method($rel => @rest);
   my $rel_obj = $class->_relationships->{$rel};
   if (my $acc_type = $rel_obj->{attrs}{accessor}) {
     $class->add_relationship_accessor($rel => $acc_type);
index 5b654af..b1d11a7 100644 (file)
@@ -123,7 +123,7 @@ sub _cond_key {
             join(', ', keys %{$attrs->{_aliases} || {}}) );
     }
   }
-  return $self->NEXT::ACTUAL::_cond_key($attrs, $key);
+  return $self->next::method($attrs, $key);
 }
 
 sub _cond_value {
@@ -151,7 +151,7 @@ sub _cond_value {
     }
   }
       
-  return $self->NEXT::ACTUAL::_cond_value($attrs, $key, $value)
+  return $self->next::method($attrs, $key, $value)
 }
 
 =item search_related
index b26345b..0da3993 100644 (file)
@@ -2,12 +2,12 @@ package DBIx::Class::Relationship::CascadeActions;
 
 sub delete {
   my ($self, @rest) = @_;
-  return $self->NEXT::ACTUAL::delete(@rest) unless ref $self;
+  return $self->next::method(@rest) unless ref $self;
     # I'm just ignoring this for class deletes because hell, the db should
     # be handling this anyway. Assuming we have joins we probably actually
     # *could* do them, but I'd rather not.
 
-  my $ret = $self->NEXT::ACTUAL::delete(@rest);
+  my $ret = $self->next::method(@rest);
 
   my %rels = %{ $self->_relationships };
   my @cascade = grep { $rels{$_}{attrs}{cascade_delete} } keys %rels;
@@ -19,10 +19,10 @@ sub delete {
 
 sub update {
   my ($self, @rest) = @_;
-  return $self->NEXT::ACTUAL::update(@rest) unless ref $self;
+  return $self->next::method(@rest) unless ref $self;
     # Because update cascades on a class *really* don't make sense!
 
-  my $ret = $self->NEXT::ACTUAL::update(@rest);
+  my $ret = $self->next::method(@rest);
 
   my %rels = %{ $self->_relationships };
   my @cascade = grep { $rels{$_}{attrs}{cascade_update} } keys %rels;
index 11a4e28..51e65e3 100644 (file)
@@ -7,7 +7,7 @@ use base qw/Class::Data::Inheritable/;
 
 sub add_relationship {
   my ($class, $rel, @rest) = @_;
-  my $ret = $class->NEXT::ACTUAL::add_relationship($rel => @rest);
+  my $ret = $class->next::method($rel => @rest);
   if (my $proxy_list = $class->_relationships->{$rel}->{attrs}{proxy}) {
     $class->proxy_to_related($rel,
               (ref $proxy_list ? @$proxy_list : $proxy_list));
index 15d6826..97444a1 100644 (file)
@@ -45,7 +45,7 @@ sub insert {
        $self->store_column( $column, $self->get_uuid )
            unless defined $self->get_column( $column );
     }
-    $self->NEXT::ACTUAL::insert;
+    $self->next::method;
 }
 
 sub get_uuid {