ExerbでTkを固めるおまじない?
先日「なぞのおまじない」と書いたExerb同梱のTkサンプルだけど、別の調べ物をしていたらなんとなく分かった。
ポイントは、スクリプト先頭の、これ。
def autoload(mod, fname) end
autoloadを再定義して無効化しているようだ。こうしておくと、必要なモジュール等が事前にすべてロードされるかエラーが出てくれるので、その都度手動で追加ライブラリを指定すればよいということらしい。全然おまじないじゃなかった!ちうか素直にvruby使えと。
あとわかったのが、ライブラリを絶対パスで指定するとExerbで固めらない。コンパイル時のエラーはexerb/mkexy.rbで
file.puts(" file: #{filepath}") if filename != filepath
のif以降をコメントアウトしてレシピ(exyファイル)を作れば対処できる。でも実行時に結局ロードエラーになる。←いまここ
こうなってくるとgemでさっくりインストールできるrubyscript2exeに軍配を上げたくなるなあ。