45 lines
971 B
Perl
45 lines
971 B
Perl
package # hide from PAUSE
|
|
DBIx::Class::CDBICompat::Triggers;
|
|
|
|
use strict;
|
|
use warnings;
|
|
use Class::Trigger;
|
|
|
|
sub insert {
|
|
my $self = shift;
|
|
|
|
return $self->create(@_) unless ref $self;
|
|
|
|
$self->call_trigger('before_create');
|
|
$self->next::method(@_);
|
|
$self->call_trigger('after_create');
|
|
return $self;
|
|
}
|
|
|
|
sub update {
|
|
my $self = shift;
|
|
$self->call_trigger('before_update');
|
|
my @to_update = keys %{$self->{_dirty_columns} || {}};
|
|
return -1 unless @to_update;
|
|
$self->next::method(@_);
|
|
$self->call_trigger('after_update');
|
|
return $self;
|
|
}
|
|
|
|
sub delete {
|
|
my $self = shift;
|
|
$self->call_trigger('before_delete') if ref $self;
|
|
$self->next::method(@_);
|
|
$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::method($column, $vals->{$column});
|
|
}
|
|
|
|
1;
|