repl works again
[scpubgit/Tak.git] / lib / Tak / ModuleLoader / Hook.pm
diff --git a/lib/Tak/ModuleLoader/Hook.pm b/lib/Tak/ModuleLoader/Hook.pm
new file mode 100644 (file)
index 0000000..c1a1627
--- /dev/null
@@ -0,0 +1,18 @@
+package Tak::ModuleLoader::Hook;
+
+use Moo;
+
+has sender => (is => 'ro', required => 1);
+
+sub Tak::ModuleLoader::Hook::INC { # unqualified INC forced into package main
+  my ($self, $module) = @_;
+  my $result = $self->sender->result_of(source_for => $module);
+  if ($result->is_success) {
+    my $code = $result->get;
+    open my $fh, '<', \$code;
+    return $fh;
+  }
+  return;
+}
+
+1;