@ledsun blog

無味の味は佳境に入らざればすなわち知れず

Node.jsでruby.wasmを動かす時にRubyスクリプトをどうやって読み込むか?

私はこんな関数を書きました。

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でも動くようにしたら良いのかな?