Remove Class::Data::Inheritable and use CAG 'inherited' style accessors
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / Triggers.pm
CommitLineData
c0e7b4e5 1package # hide from PAUSE
2 DBIx::Class::CDBICompat::Triggers;
fe5d862b 3
cc8d8678 4use strict;
5use warnings;
5e0eea35 6
7use base 'DBIx::Class';
8
fe5d862b 9use Class::Trigger;
10
11sub insert {
12 my $self = shift;
e60dc79f 13
14 return $self->create(@_) unless ref $self;
15
fe5d862b 16 $self->call_trigger('before_create');
147dd158 17 $self->next::method(@_);
fe5d862b 18 $self->call_trigger('after_create');
19 return $self;
20}
21
22sub update {
23 my $self = shift;
24 $self->call_trigger('before_update');
25 my @to_update = keys %{$self->{_dirty_columns} || {}};
26 return -1 unless @to_update;
147dd158 27 $self->next::method(@_);
fe5d862b 28 $self->call_trigger('after_update');
29 return $self;
30}
31
32sub delete {
33 my $self = shift;
34 $self->call_trigger('before_delete') if ref $self;
147dd158 35 $self->next::method(@_);
fe5d862b 36 $self->call_trigger('after_delete') if ref $self;
37 return $self;
38}
39
cc8d8678 40sub store_column {
41 my ($self, $column, $value, @rest) = @_;
42 my $vals = { $column => $value };
43 $self->call_trigger("before_set_${column}", $value, $vals);
147dd158 44 return $self->next::method($column, $vals->{$column});
cc8d8678 45}
46
fe5d862b 471;