better action debug info
[scpubgit/DKit.git] / lib / DX / Solver.pm
index 753abe5..f1579a2 100644 (file)
@@ -16,7 +16,9 @@ has rule_set => (
 
 has facts => (is => 'ro', default => sub { {} });
 
-has observation_policy => (is => 'ro');
+has observation_policy => (is => 'rw');
+
+has action_callback => (is => 'rw');
 
 sub query {
   my ($self, @terms) = @_;
@@ -64,7 +66,9 @@ sub _solve {
 
 sub run_action {
   my ($self, $action) = @_;
-  warn +(split('::', ref($action)))[-1]."\n";
+  if (my $cb = $self->action_callback) {
+    $cb->($action);
+  }
   my @invalidate = $action->run;
   while (my ($type, $value) = splice @invalidate, 0, 2) {
     $self->facts->{$type}->remove_value($value);