summaryrefslogtreecommitdiffstats
path: root/lib/Reply/Plugin/ResultCache.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reply/Plugin/ResultCache.pm')
-rw-r--r--lib/Reply/Plugin/ResultCache.pm19
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/Reply/Plugin/ResultCache.pm b/lib/Reply/Plugin/ResultCache.pm
index 91fda37..713a7fd 100644
--- a/lib/Reply/Plugin/ResultCache.pm
+++ b/lib/Reply/Plugin/ResultCache.pm
@@ -28,21 +28,11 @@ sub new {
my $self = $class->SUPER::new(@_);
$self->{results} = [];
$self->{result_name} = $opts{variable} || 'res';
+ $self->{publisher} = $opts{publisher};
return $self;
}
-sub compile {
- my $self = shift;
- my ($next, $line, %args) = @_;
-
- $args{environments}{''.__PACKAGE__} = {
- "\@$self->{result_name}" => $self->{results},
- };
-
- $next->($line, %args);
-}
-
sub execute {
my $self = shift;
my ($next, @args) = @_;
@@ -55,6 +45,13 @@ sub execute {
push @{ $self->{results} }, \@res;
}
+ $self->{publisher}->(
+ 'lexical_environment',
+ result_cache => {
+ "\@$self->{result_name}" => $self->{results},
+ },
+ );
+
return @res;
}