Initial Commit
This commit is contained in:
44
database/perl/vendor/lib/DBIx/Class/CDBICompat/Triggers.pm
vendored
Normal file
44
database/perl/vendor/lib/DBIx/Class/CDBICompat/Triggers.pm
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user