diff options
Diffstat (limited to 'lib/Reply/Plugin/ResultCache.pm')
-rw-r--r-- | lib/Reply/Plugin/ResultCache.pm | 19 |
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; } |