Rename (with a silent compat shim) couple of badly named customcond args
[dbsrgits/DBIx-Class-Historic.git] / lib / DBIx / Class / Relationship / Base.pm
index 16d213d..c39755a 100644 (file)
@@ -232,11 +232,17 @@ clause, the C<$args> hashref passed to the subroutine contains some extra
 metadata. Currently the supplied coderef is executed as:
 
   $relationship_info->{cond}->({
-    self_alias        => The alias of the invoking resultset ('me' in case of a result object),
-    foreign_alias     => The alias of the to-be-joined resultset (often matches relname),
-    self_resultsource => The invocant's resultsource,
-    foreign_relname   => The relationship name (does *not* always match foreign_alias),
-    self_rowobj       => The invocant itself in case of a $result_object->$relationship call
+    self_resultsource => The resultsource instance on which rel_name is registered
+    rel_name          => The relationship name (does *NOT* always match foreign_alias)
+
+    self_alias        => The alias of the invoking resultset
+    foreign_alias     => The alias of the to-be-joined resultset (does *NOT* always match rel_name)
+
+    self_resultobj    => The invocant object itself in case of a $resultobj->$rel_name() call
+
+    # deprecated inconsistent names, will be forever available for legacy code
+    self_rowobj       => Old deprecated slot for self_resultobj
+    foreign_relname   => Old deprecated slot for rel_name
   });
 
 =head3 attributes
@@ -488,10 +494,7 @@ sub related_resultset {
     };
 
     # keep in mind that the following if() block is part of a do{} - no return()s!!!
-    if ($is_crosstable) {
-      $self->throw_exception (
-        "A cross-table relationship condition returned for statically declared '$rel'"
-      ) unless ref $rel_info->{cond} eq 'CODE';
+    if ($is_crosstable and ref $rel_info->{cond} eq 'CODE') {
 
       # A WHOREIFFIC hack to reinvoke the entire condition resolution
       # with the correct alias. Another way of doing this involves a
@@ -643,7 +646,7 @@ sub new_related {
       $rel_info->{cond}, $rel, $self, $rel
     );
 
-    $self->throw_exception("Custom relationship '$rel' does not resolve to a join-free condition fragment")
+    $self->throw_exception("Relationship '$rel' does not resolve to a join-free condition fragment")
       if $crosstable;
 
     if (
@@ -822,7 +825,7 @@ sub set_from_related {
   my ($cond, $crosstable, $nonequality_foreign_columns) = $rsrc->_resolve_condition (
     $rel_info->{cond}, $f_obj, $rel, $rel
   );
-  $self->throw_exception("Custom relationship '$rel' does not resolve to a join-free condition fragment")
+  $self->throw_exception("Relationship '$rel' does not resolve to a join-free condition fragment")
     if $crosstable;
 
   $self->throw_exception(sprintf (