Enable src attribute in script tag in browser.script.iife.js. by ledsun · Pull Request #49 · ruby/ruby.wasm · GitHub が取り込まれたので使ってみました。
<script defer src="https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.3.0-2022-10-01-a/dist/browser.script.iife.js"></script> <script type="text/ruby" src="main.rb"></script>
つかったら、Rubyスクリプトファイルをわけたくなりました。
<script defer src="https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.3.0-2022-10-01-a/dist/browser.script.iife.js"></script> <script type="text/ruby" src="wordle_search.rb"></script> <script type="text/ruby" src="main.rb"></script>
おお、見覚えがあります。 src属性に対応したら、jQuery時代のモジュール依存関係解決と同じ事ができるようになったみたいです。 なら、JavaScriptのimport相当の動きも欲しくなります。
<script type="text/ruby" src="wordle_search.rb"></script> <script type="text/ruby" src="main.rb"></script>
と書く代わりに
require_relative "wordle_search"
と、書くと依存関係を解決して欲しいです。 つまり、次の動きを期待します。
- http://example.com/lib/hoge/example.rb を実行するとき
- example.rbに
require_relative "fuga/fuga_lib"
が含まれていたら - 先に http://example.com/lib/hoge/fuga/fuga_lib.rb を実行する
あれ?これはもしかして GitHub - WICG/import-maps: How to control the behavior of JavaScript imports をサポートするれば、bundlerでインストールしたGemを読み込めるようにもなるのでしょうか?
問題はあります。Rubyのruquire
やrequirue_relative
は、スクリプトの中間に書けます*1。
そうすると、先 とは限りません。
こういうのどうするんでしょう?ruby.wasmからコールバック関数を呼ぶといいのでしょうか?それともruby.wasm内でrequire_relativeをハックするのでしょうか?
まずは、位置を意識しない雑なハックをしてみて、これが本当に欲しいのものなのか、確かめてみるのが良さそうです。