require_relativeはパッチれない - @ledsun blog で、Rubyスクリプトの実行前に、Rubyスクリプトを静的にあつかってrequire_relativeを置き換えることにしました。 そこで次のアイデアを思いつきました。
Rubyスクリプトの実行前に、require_relativeの参照先スクリプトを取得して、RubyVMのファイルシステムに書き込んでしまえばいいのでは?
これができると次のメリットがあります。
というわけで、ruby.wasmでファイリングシステムに書き込みができるか試してみます。
Rubyでファイルを書き込むワンライナーです。 irbで動くことを確認します。
irb(main):004:0> File.open("test.rb", "w", 0755) { _1.write "hello" } => 5
これをruby.wasmで動かすと
class Errno::ENOTCAPABLE (Ruby 3.1 リファレンスマニュアル)
システムコールのエラーコードを表す例外クラスです。
ファイルをオープンできないみたいです。
あれ?でもrequire
で標準Gemは読み込めます。
例えば'require "csv"'は実行可能です。
何か方法があるのかもしれません。