私はこんな関数を書きました。
async function requireRubyScript(vm, path) { vm.eval(await readFile(path, "utf-8")); }
await requireRubyScript(vm, "calculator.rb");な風に使います。
これはデフォルトで欲しいですよね。
例えば
vm.require("calculator.rb");
でも、requireだとgemが読み込める気がしませんか?
今のところはもっとシンプルに実行ファイル(例えばindex.mjs)からの相対パスでファイルが読み込めたら十分です。
vm.load("calculator.rb");
ではどうでしょうか? Kernel.#loadの探索はもっと複雑なので、誤解を招きそうです。
vm.evalFile("calculator.rb");
くらいがよさそうです。
名前が決まったら、次はNode.jsのときだけ有効になるメソッド実装方法が気になってきます。 んー、もしかしてブラウザでもNode.jsでも動くようにしたら良いのかな?