+use Class::Method::Modifiers qw/after/;
+
+sub rawcontest { shift->get_column('contest') }
+sub rawowner { shift->get_column('owner') }
+sub rawproblem { shift->get_column('problem') }
+
+sub rerun {
+ shift->update({daemon => undef, result => -2, result_text => undef});
+}
+
+after qw/insert update delete/ => sub {
+ my ($self) = @_;
+ Gruntmaster::Data::purge '/us/';
+ Gruntmaster::Data::purge '/us/' . $self->rawowner;
+ Gruntmaster::Data::purge '/st/' . $self->rawcontest if $self->rawcontest;
+ Gruntmaster::Data::purge '/log/';
+ Gruntmaster::Data::purge '/log/' . $self->id;
+};