File Coverage

blib/lib/DBIx/Class/CDBICompat/Triggers.pm
Criterion Covered Total %
statement 10 12 83.3
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 14 16 87.5


line stmt bran cond sub pod time code
1             package # hide from PAUSE
2             DBIx::Class::CDBICompat::Triggers;
3              
4 2     2   1018 use strict;
  2         4  
  2         51  
5 2     2   9 use warnings;
  2         4  
  2         60  
6              
7 2     2   14 use base 'DBIx::Class';
  2         6  
  2         183  
8              
9 2     2   167 use Class::Trigger;
  0            
  0            
10              
11             sub insert {
12             my $self = shift;
13              
14             return $self->create(@_) unless ref $self;
15              
16             $self->call_trigger('before_create');
17             $self->next::method(@_);
18             $self->call_trigger('after_create');
19             return $self;
20             }
21              
22             sub 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;
27             $self->next::method(@_);
28             $self->call_trigger('after_update');
29             return $self;
30             }
31              
32             sub delete {
33             my $self = shift;
34             $self->call_trigger('before_delete') if ref $self;
35             $self->next::method(@_);
36             $self->call_trigger('after_delete') if ref $self;
37             return $self;
38             }
39              
40             sub store_column {
41             my ($self, $column, $value, @rest) = @_;
42             my $vals = { $column => $value };
43             $self->call_trigger("before_set_${column}", $value, $vals);
44             return $self->next::method($column, $vals->{$column});
45             }
46              
47             1;