トップ «前の日記(2006-07-08) 最新 次の日記(2006-08-01)» 編集

Route 477



2006-07-15

[ruby] RubyText 0.1

Ruby勉強会@関西-11の最中に内職をして(ごめんなさい(^^;))、 RDHikiDocフォーマットの 変換ツールをいじってました。

要するにrd2とhikidocをExerbで固めて、ドラッグ&ドロップで 起動できるようにしたものです。WindowsだといちいちDOS窓開くのも面倒なので作ってみました。

まだCSSの指定とか実装できてないので公開するか迷ったのですが、いまリリースしないと永遠に放置される 予感がしたのでとりあえず置いてみました

今回の勉強会はExerbの作者であるyuyaさんがいらっしゃるということで、 実はExerbに関する質問をしたくて勉強会に参加したのですが、 新バージョンのExerb 4.0.0のマニュアル を読んでたら自己解決してしまったという(笑)。

あと突然Down!!が紹介されてびっくりした! あれから2作ほど新しいゲームを書いたのですが、それらも配布の際にExerbを利用させてもらってます。 ありがとうございます。

[ruby] Exerb化したexeの置かれているパスを取得する

したかった質問というのは、Exerb化したexeの実行中に、exeのフルパスを取得することはできるか?というものでした。 Rubyでは普通、Dir.pwd + $0 がスクリプトのフルパスになるんですが*1、 ドラッグ&ドロップでexeを起動するとカレントディレクトリが別のフォルダになってしまうのでした。

Exerb 4.0.0では、Exerb化したexeの実行時のみに定義されるExerbRuntimeというモジュール*2 を通して 実行ファイルのフルパスや、格納されたリソース/ファイルへのアクセスができるようになっています

「exeと同じフォルダにあるconfig.rbを読み込む」という処理は、こんな風に書けます。

if defined? ExerbRuntime
  conf_path = File.expand_path("config.rb", File.dirname(ExerbRuntime.filepath))
  require conf_path
else
  require 'config.rb'
end

*1 なりますよね…?

*2 Exerb 3.3.1ではExerbというモジュールだったらしい