working remote module loading
[scpubgit/Tak.git] / lib / Tak / ModuleLoader.pm
CommitLineData
36cf3bcb 1package Tak::ModuleLoader;
2
3use Moo;
4
5has remote => (is => 'ro', required => 1);
6
7sub inc_callback {
799b77f3 8 my ($self) = @_;
9 sub { return if our $In_Reentry; $self->maybe_load_module($_[1]) }
36cf3bcb 10}
11
12sub maybe_load_module {
13 my ($self, $module) = @_;
799b77f3 14 local our $In_Reentry = 1;
15 my ($status, $code) = $self->remote->blocking_request(source_for => $module);
16 if ($status eq 'RESULT') {
36cf3bcb 17 open my $fh, '<', \$code;
18 return $fh;
19 }
20 return;
21}
22
231;