package
DBIx::Class::CDBICompat::AutoUpdate;
__PACKAGE__->mk_classdata(
'__AutoCommit'
);
sub
set_column {
my
$self
=
shift
;
my
$ret
=
$self
->
next
::method(
@_
);
$self
->update
if
(
$self
->autoupdate &&
$self
->{_in_storage});
return
$ret
;
}
sub
autoupdate {
my
$proto
=
shift
;
ref
$proto
?
$proto
->_obj_autoupdate(
@_
)
:
$proto
->_class_autoupdate(
@_
) ;
}
sub
_obj_autoupdate {
my
(
$self
,
$set
) =
@_
;
my
$class
=
ref
$self
;
$self
->{__AutoCommit} =
$set
if
defined
$set
;
defined
$self
->{__AutoCommit}
?
$self
->{__AutoCommit}
:
$class
->_class_autoupdate;
}
sub
_class_autoupdate {
my
(
$class
,
$set
) =
@_
;
$class
->__AutoCommit(
$set
)
if
defined
$set
;
return
$class
->__AutoCommit;
}
1;