Move a CDBI escape to the CDBI class hierarchy
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Relationship / Base.pm
index 906307f..2868250 100644 (file)
@@ -7,6 +7,7 @@ use base qw/DBIx::Class/;
 
 use Scalar::Util qw/weaken blessed/;
 use Try::Tiny;
+use DBIx::Class::_Util 'UNRESOLVABLE_CONDITION';
 use namespace::clean;
 
 =head1 NAME
@@ -493,7 +494,7 @@ sub related_resultset {
     }
     catch {
       $self->throw_exception ($_) if $self->in_storage;
-      $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION;  # RV, no return()
+      UNRESOLVABLE_CONDITION;  # RV, no return()
     };
 
     # keep in mind that the following if() block is part of a do{} - no return()s!!!
@@ -522,7 +523,7 @@ sub related_resultset {
       # FIXME - this conditional doesn't seem correct - got to figure out
       # at some point what it does. Also the entire UNRESOLVABLE_CONDITION
       # business seems shady - we could simply not query *at all*
-      if ($cond eq $DBIx::Class::ResultSource::UNRESOLVABLE_CONDITION) {
+      if ($cond eq UNRESOLVABLE_CONDITION) {
         my $reverse = $rsrc->reverse_relationship_info($rel);
         foreach my $rev_rel (keys %$reverse) {
           if ($reverse->{$rev_rel}{attrs}{accessor} && $reverse->{$rev_rel}{attrs}{accessor} eq 'multi') {
@@ -640,8 +641,6 @@ sub new_related {
   # sanity check - currently throw when a complex coderef rel is encountered
   # FIXME - should THROW MOAR!
 
-  if (ref $self) {  # cdbi calls this as a class method, /me vomits
-
     my $rsrc = $self->result_source;
     my $rel_info = $rsrc->relationship_info($rel)
       or $self->throw_exception( "No such relationship '$rel'" );
@@ -663,7 +662,6 @@ sub new_related {
         map { "'$_'" } @unspecified_rel_condition_chunks
       ));
     }
-  }
 
   return $self->search_related($rel)->new_result($values);
 }