package
DBIx::Class::CDBICompat::Triggers;
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;