[Bast-commits] r8912 - DBIx-Class/0.08/trunk/lib/DBIx/Class/Relationship

wreis at dev.catalyst.perl.org wreis at dev.catalyst.perl.org
Sat Mar 6 17:51:59 GMT 2010


Author: wreis
Date: 2010-03-06 17:51:59 +0000 (Sat, 06 Mar 2010)
New Revision: 8912

Modified:
   DBIx-Class/0.08/trunk/lib/DBIx/Class/Relationship/HasOne.pm
Log:
improvements for HasOne relationship validationn

Modified: DBIx-Class/0.08/trunk/lib/DBIx/Class/Relationship/HasOne.pm
===================================================================
--- DBIx-Class/0.08/trunk/lib/DBIx/Class/Relationship/HasOne.pm	2010-03-06 17:12:55 UTC (rev 8911)
+++ DBIx-Class/0.08/trunk/lib/DBIx/Class/Relationship/HasOne.pm	2010-03-06 17:51:59 UTC (rev 8912)
@@ -47,7 +47,7 @@
     ) if $f_class_loaded && !$f_class->has_column($f_key);
     $cond = { "foreign.${f_key}" => "self.${pri}" };
   }
-  $class->_validate_cond($cond);
+  $class->_validate_has_one_condition($cond);
   $class->add_relationship($rel, $f_class,
    $cond,
    { accessor => 'single',
@@ -72,7 +72,7 @@
   return $pri;
 }
 
-sub _validate_cond {
+sub _validate_has_one_condition {
   my ($class, $cond )  = @_;
 
   return if $ENV{DBIC_DONT_VALIDATE_RELS};
@@ -84,6 +84,8 @@
     # warning
     return unless $self_id =~ /^self\.(.*)$/;
     my $key = $1;
+    $class->throw_exception("Defining rel on ${class} that includes ${key} but no such column defined here yet")
+        unless $class->has_column($key);
     my $column_info = $class->column_info($key);
     if ( $column_info->{is_nullable} ) {
       carp(qq'"might_have/has_one" must not be on columns with is_nullable set to true ($class/$key). This might indicate an incorrect use of those relationship helpers instead of belongs_to.');




More information about the Bast-commits mailing list