X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FTriggers.pm;h=3bf8070cfd5a931d6913e8e58b84bd851d815869;hb=9f300b1bcbbaef6d0a3e6fffb37e05119bd2c8cd;hp=21826f98865fdc1f09d044874bdaa22015ad3a92;hpb=fe5d862bdaa631796cb26e5fea232a81458e68f8;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/CDBICompat/Triggers.pm b/lib/DBIx/Class/CDBICompat/Triggers.pm index 21826f9..3bf8070 100644 --- a/lib/DBIx/Class/CDBICompat/Triggers.pm +++ b/lib/DBIx/Class/CDBICompat/Triggers.pm @@ -1,11 +1,13 @@ package DBIx::Class::CDBICompat::Triggers; +use strict; +use warnings; use Class::Trigger; sub insert { my $self = shift; $self->call_trigger('before_create'); - $self->NEXT::insert(@_); + $self->NEXT::ACTUAL::insert(@_); $self->call_trigger('after_create'); return $self; } @@ -15,7 +17,7 @@ sub update { $self->call_trigger('before_update'); my @to_update = keys %{$self->{_dirty_columns} || {}}; return -1 unless @to_update; - $self->NEXT::update(@_); + $self->NEXT::ACTUAL::update(@_); $self->call_trigger('after_update'); return $self; } @@ -23,9 +25,16 @@ sub update { sub delete { my $self = shift; $self->call_trigger('before_delete') if ref $self; - $self->NEXT::delete(@_); + $self->NEXT::ACTUAL::delete(@_); $self->call_trigger('after_delete') if ref $self; return $self; } +sub store_column { + my ($self, $column, $value, @rest) = @_; + my $vals = { $column => $value }; + $self->call_trigger("before_set_${column}", $value, $vals); + return $self->NEXT::ACTUAL::store_column($column, $vals->{$column}); +} + 1;