release 0.08123
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Relationship / ProxyMethods.pm
index 0524288..7b76499 100644 (file)
@@ -1,18 +1,23 @@
-package DBIx::Class::Relationship::ProxyMethods;
+package # hide from PAUSE
+    DBIx::Class::Relationship::ProxyMethods;
 
 use strict;
 use warnings;
-
+use Sub::Name ();
 use base qw/DBIx::Class/;
 
-sub add_relationship {
-  my ($class, $rel, @rest) = @_;
-  my $ret = $class->next::method($rel => @rest);
-  if (my $proxy_list = $class->_relationships->{$rel}->{attrs}{proxy}) {
+our %_pod_inherit_config = 
+  (
+   class_map => { 'DBIx::Class::Relationship::ProxyMethods' => 'DBIx::Class::Relationship' }
+  );
+
+sub register_relationship {
+  my ($class, $rel, $info) = @_;
+  if (my $proxy_list = $info->{attrs}{proxy}) {
     $class->proxy_to_related($rel,
               (ref $proxy_list ? @$proxy_list : $proxy_list));
   }
-  return $ret;
+  $class->next::method($rel, $info);
 }
 
 sub proxy_to_related {
@@ -20,7 +25,8 @@ sub proxy_to_related {
   no strict 'refs';
   no warnings 'redefine';
   foreach my $proxy (@proxy) {
-    *{"${class}::${proxy}"} =
+    my $name = join '::', $class, $proxy;
+    *$name = Sub::Name::subname $name,
       sub {
         my $self = shift;
         my $val = $self->$rel;