4 use Tak::ServiceManager;
12 has channel_args => (is => 'ro', required => 1);
15 open my $stdin, '<&', \*STDIN;
16 open my $stdout, '>&', \*STDOUT;
17 shift->new(channel_args => { read_fh => $stdin, write_fh => $stdout });
20 has router => (is => 'lazy');
24 my $channel = Tak::JSONChannel->new($self->channel_args);
26 my $router = Tak::Router->new(
30 $router->register(EVAL => Tak::EvalService->new);
32 my $remote = Tak::Remote->new(
34 name => 'MODULE_SENDER'
37 my $loader = Tak::ModuleLoader->new(
41 unshift @INC, $loader->inc_callback;
46 sub run { shift->router->run }