I hate you all.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / MightHave.pm
index 5cf073e..519c6fe 100644 (file)
@@ -1,22 +1,17 @@
-package DBIx::Class::CDBICompat::MightHave;
+package # hide from PAUSE
+    DBIx::Class::CDBICompat::MightHave;
 
 use strict;
 use warnings;
 
 sub might_have {
   my ($class, $rel, $f_class, @columns) = @_;
-  my ($pri, $too_many) = keys %{ $class->_primaries };
-  $class->throw( "might_have only works with a single primary key; ${class} has more" )
-    if $too_many;
-  my $f_pri;
-  ($f_pri, $too_many) = keys %{ $f_class->_primaries };
-  $class->throw( "might_have only works with a single primary key; ${f_class} has more" )
-    if $too_many;
-  $class->add_relationship($rel, $f_class,
-   { "foreign.${f_pri}" => "self.${pri}" },
-   { accessor => 'single', proxy => \@columns,
-     cascade_update => 1, cascade_delete => 1 });
-  1;
+  if (ref $columns[0] || !defined $columns[0]) {
+    return $class->next::method($rel, $f_class, @columns);
+  } else {
+    return $class->next::method($rel, $f_class, undef,
+                                     { proxy => \@columns });
+  }
 }
 
 1;