Commit | Line | Data |
---|---|---|
36cf3bcb | 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; |