Remove Class::Data::Inheritable and use CAG 'inherited' style accessors
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / Triggers.pm
index 21826f9..0428b6a 100644 (file)
@@ -1,11 +1,20 @@
-package DBIx::Class::CDBICompat::Triggers;
+package # hide from PAUSE
+    DBIx::Class::CDBICompat::Triggers;
+
+use strict;
+use warnings;
+
+use base 'DBIx::Class';
 
 use Class::Trigger;
 
 sub insert {
   my $self = shift;
+
+  return $self->create(@_) unless ref $self;
+
   $self->call_trigger('before_create');
-  $self->NEXT::insert(@_);
+  $self->next::method(@_);
   $self->call_trigger('after_create');
   return $self;
 }
@@ -15,7 +24,7 @@ sub update {
   $self->call_trigger('before_update');
   my @to_update = keys %{$self->{_dirty_columns} || {}};
   return -1 unless @to_update;
-  $self->NEXT::update(@_);
+  $self->next::method(@_);
   $self->call_trigger('after_update');
   return $self;
 }
@@ -23,9 +32,16 @@ sub update {
 sub delete {
   my $self = shift;
   $self->call_trigger('before_delete') if ref $self;
-  $self->NEXT::delete(@_);
+  $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;