client and server manage to talk
[scpubgit/Tak.git] / lib / Tak / ModuleLoader.pm
1 package Tak::ModuleLoader;
2
3 use Moo;
4
5 has remote => (is => 'ro', required => 1);
6
7 sub inc_callback {
8   sub { $self->maybe_load_module($_[1]) }
9 }
10
11 sub maybe_load_module {
12   my ($self, $module) = @_;
13   my $result = $self->remote->blocking_request(source_for => $module);
14   if (my $code = $result->{code}) {
15     open my $fh, '<', \$code;
16     return $fh;
17   }
18   return;
19 }
20
21 1;