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) = @_;
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);