[Jifty-commit] r1150 - in Jifty-DBI/trunk: lib/Jifty/DBI

jifty-commit at lists.jifty.org jifty-commit at lists.jifty.org
Fri Jun 2 19:50:09 EDT 2006


Author: alexmv
Date: Fri Jun  2 19:50:08 2006
New Revision: 1150

Modified:
   Jifty-DBI/trunk/   (props changed)
   Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm

Log:
 r13421 at zoq-fot-pik:  chmrr | 2006-06-02 19:49:58 -0400
  * Perltidy
  * Set validator on the column to validate_whatever (even if it's just
 the autogenerated one)


Modified: Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	(original)
+++ Jifty-DBI/trunk/lib/Jifty/DBI/Record.pm	Fri Jun  2 19:50:08 2006
@@ -156,80 +156,98 @@
 }
 
 sub _init_methods_for_column {
-  my $self        = $_[0];
-  my $column      = $_[1];
-  my $column_name = ($column->aliased_as ?$column->aliased_as:$column->name);
-  my $package = ref($self)||$self;
-  no strict 'refs';    # We're going to be defining subs
-  if (  not $self->can($column_name)) {
-      
-    my $subref;
-    if ($column->readable) {
-    if ( UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Record" ) ) {
-      $subref = sub {
-        $_[0]->_to_record( $column_name, $_[0]->__value($column_name) );
-      };
-    }
-    elsif ( UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Collection" ) ) {
-      $subref = sub { $_[0]->_collection_value($column_name) };
-    }
-    else {
-      $subref = sub { return ( $_[0]->_value($column_name) ) };
+    my $self   = $_[0];
+    my $column = $_[1];
+    my $column_name
+        = ( $column->aliased_as ? $column->aliased_as : $column->name );
+    my $package = ref($self) || $self;
+    no strict 'refs';    # We're going to be defining subs
+
+    if ( not $self->can($column_name) ) {
+        # Accessor
+        my $subref;
+        if ( $column->readable ) {
+            if ( UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Record" ) )
+            {
+                $subref = sub {
+                    $_[0]->_to_record( $column_name,
+                        $_[0]->__value($column_name) );
+                };
+            } elsif (
+                UNIVERSAL::isa(
+                    $column->refers_to, "Jifty::DBI::Collection"
+                )
+                )
+            {
+                $subref = sub { $_[0]->_collection_value($column_name) };
+            } else {
+                $subref = sub { return ( $_[0]->_value($column_name) ) };
+            }
+        } else {
+            $subref = sub { return '' }
+        }
+        *{ $package . "::" . $column_name } = $subref;
+
     }
-    } else {
-        $subref = sub { return '' }
+
+    if ( not $self->can( "set_" . $column_name ) ) {
+        # Mutator
+        my $subref;
+        if ( $column->writable ) {
+            if ( UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Record" ) )
+            {
+                $subref = sub {
+                    my $self = shift;
+                    my $val  = shift;
+
+                    $val = $val->id
+                        if UNIVERSAL::isa( $val, 'Jifty::DBI::Record' );
+                    return (
+                        $self->_set( column => $column_name, value => $val )
+                    );
+                };
+            } elsif (
+                UNIVERSAL::isa(
+                    $column->refers_to, "Jifty::DBI::Collection"
+                )
+                )
+            {    # XXX elw: collections land here, now what?
+                my $ret     = Class::ReturnValue->new();
+                my $message = "Collection column '$column_name' not writable";
+                $ret->as_array( 0, $message );
+                $ret->as_error(
+                    errno        => 3,
+                    do_backtrace => 0,
+                    message      => $message
+                );
+                $subref = sub { return ( $ret->return_value ); };
+            } else {
+                $subref = sub {
+                    return (
+                        $_[0]->_set( column => $column_name, value => $_[1] )
+                    );
+                };
+            }
+        } else {
+            my $ret     = Class::ReturnValue->new();
+            my $message = 'Immutable column';
+            $ret->as_array( 0, $message );
+            $ret->as_error(
+                errno        => 3,
+                do_backtrace => 0,
+                message      => $message
+            );
+            $subref = sub { return ( $ret->return_value ); };
+        }
+        *{ $package . "::" . "set_" . $column_name } = $subref;
     }
-    *{$package."::".$column_name} = $subref;
 
-  }
-  if ( not $self->can("set_".$column_name)) {
-    my $subref;
-    if ($column->writable) {
-    if ( UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Record" ) ) {
-      $subref = sub {
-        my $self = shift;
-        my $val  = shift;
-
-        $val = $val->id
-          if UNIVERSAL::isa( $val, 'Jifty::DBI::Record' );
-        return ( $self->_set( column => $column_name, value => $val ) );
-      };
-    }
-    elsif (
-        UNIVERSAL::isa( $column->refers_to, "Jifty::DBI::Collection" ) )
-    { # XXX elw: collections land here, now what?
-      my $ret = Class::ReturnValue->new();
-      my $message = "Collection column '$column_name' not writable";
-      $ret->as_array( 0, $message );
-      $ret->as_error(
-          errno        => 3,
-          do_backtrace => 0,
-          message      => $message
-      );
-      $subref = sub { return ( $ret->return_value ); };
-    }
-    else {
-      $subref = sub {
-        return ( $_[0]->_set( column => $column_name, value => $_[1] ) );
-      };
-    } } 
-    else {
-      my $ret = Class::ReturnValue->new();
-      my $message = 'Immutable column';
-      $ret->as_array( 0, $message );
-      $ret->as_error(
-          errno        => 3,
-          do_backtrace => 0,
-          message      => $message
-      );
-      $subref = sub { return ( $ret->return_value ); };
-    }
-    *{$package."::" . "set_" . $column_name } = $subref;
-  }
-  if (not $self->can("validate_".$column_name)) { 
-  *{ $package ."::" . "validate_" . $column_name }
-    = sub { return ( $_[0]->_validate( $column_name, $_[1] ) ) };
+    if ( not $column->validator and not $self->can( "validate_" . $column_name ) ) {
+        # Validator
+        *{ $package . "::" . "validate_" . $column_name }
+            = sub { return ( $_[0]->_validate( $column_name, $_[1] ) ) };
     }
+    $column->validator( $self->can( "validate_" . $column_name ) ) unless $column->validator;
 }
 
 


More information about the Jifty-commit mailing list