1package # hide from PAUSE 2 DBIx::Class::CDBICompat::Triggers; 3 4use strict; 5use warnings; 6use Class::Trigger; 7 8sub insert { 9 my $self = shift; 10 11 return $self->create(@_) unless ref $self; 12 13 $self->call_trigger('before_create'); 14 $self->next::method(@_); 15 $self->call_trigger('after_create'); 16 return $self; 17} 18 19sub update { 20 my $self = shift; 21 $self->call_trigger('before_update'); 22 my @to_update = keys %{$self->{_dirty_columns} || {}}; 23 return -1 unless @to_update; 24 $self->next::method(@_); 25 $self->call_trigger('after_update'); 26 return $self; 27} 28 29sub delete { 30 my $self = shift; 31 $self->call_trigger('before_delete') if ref $self; 32 $self->next::method(@_); 33 $self->call_trigger('after_delete') if ref $self; 34 return $self; 35} 36 37sub store_column { 38 my ($self, $column, $value, @rest) = @_; 39 my $vals = { $column => $value }; 40 $self->call_trigger("before_set_${column}", $value, $vals); 41 return $self->next::method($column, $vals->{$column}); 42} 43 441; 45