Initial Commit
This commit is contained in:
40
database/perl/vendor/lib/DBIx/Class/CDBICompat/AutoUpdate.pm
vendored
Normal file
40
database/perl/vendor/lib/DBIx/Class/CDBICompat/AutoUpdate.pm
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
package # hide from PAUSE
|
||||
DBIx::Class::CDBICompat::AutoUpdate;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use base qw/Class::Data::Inheritable/;
|
||||
|
||||
__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;
|
||||
Reference in New Issue
Block a user