[Jifty-commit] r2886 - in Jifty-DBI/branches/od: .
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Sat Mar 3 11:29:38 EST 2007
Author: jesse
Date: Sat Mar 3 11:29:38 2007
New Revision: 2886
Modified:
Jifty-DBI/branches/od/ (props changed)
Jifty-DBI/branches/od/lib/Jifty/DBI/Record.pm
Log:
r52891 at pinglin: jesse | 2007-03-02 18:51:05 +0000
* extracting methods for calling validation and Class::Trigger support
Modified: Jifty-DBI/branches/od/lib/Jifty/DBI/Record.pm
==============================================================================
--- Jifty-DBI/branches/od/lib/Jifty/DBI/Record.pm (original)
+++ Jifty-DBI/branches/od/lib/Jifty/DBI/Record.pm Sat Mar 3 11:29:38 2007
@@ -1343,6 +1343,69 @@
}
+=head2 run_canonicalization_for_column
+
+=cut
+
+sub run_canonicalization_for_column {
+ my $self = shift;
+ my %args = ( column => undef,
+ value => undef,
+ @_);
+ my $key = $args{column};
+ my $attr = $args{value};
+ my $method = "canonicalize_$key";
+ my $func = $self->can($method) or return $attr;
+ return ($self->$func( $attr));
+}
+
+sub has_canonicalizer_for_column {
+ my $self = shift;
+ my $key = shift;
+ my $method = "canonicalize_$key";
+ if( $self->can($method) ) {
+ return 1;
+ } else {
+ return undef;
+ }
+}
+
+
+=head2 run_canonicalization_for_column
+
+=cut
+
+sub run_validation_for_column {
+ my $self = shift;
+ my %args = ( column => undef,
+ value => undef,
+ @_);
+ my $key = $args{'column'};
+ my $attr = $args{'value'};
+ my $method = "validate_$key";
+ if (my $func = $self->can($method)) {
+ my ( $val, $msg ) = $func->($self, $attr);
+ return ($val,$msg);
+ }
+
+ else {
+ return (1, 'Validation ok');
+ }
+}
+
+sub has_validator_for_column {
+ my $self = shift;
+ my $key = shift;
+ my $method = "validate_$key";
+ if( $self->can($method) ) {
+ return 1;
+ } else {
+ return undef;
+ }
+}
+
+
+
sub _run_callback {
my $self = shift;
my %args = ( name => undef,
@@ -1352,7 +1415,10 @@
if ( $self->can($method) ) {
return $self->$method( $args{args} );
}
- else { return 1};
+
+ my @return = $self->call_trigger($args{'name'} => $args{args});
+
+ return 1;
}
1;
More information about the Jifty-commit
mailing list