2013/09/21(土) [n年前の日記]
#2 [ruby] DXRuby 1.5.6dev版が公開されてた
早速導入して試してみたり。とりあえず、以前作成した Anime PV Easy Maker ZERO は動いてるように見えたので一安心(?)。
◎ フォルダ選択ダイアログを表示する機能が追加されてた。 :
同梱の readme.txt を眺めていたら、フォルダ選択機能追加という一文が。1.5.3devで追加されていたらしい…。
早速試してみたり。
Ruby 1.8 の頃は、Windows上でRubyを使ってGUIアプリを作ろうとするなら VisualuRuby (vr/vruby) を使う、という選択肢があったのだけど。Ruby 1.9 になってからは、VisualuRuby は対応してない状態に。一応、ActiveScriptRuby を入れれば同梱されてるらしいけど…。RubyInstaller を入れた場合はどうすればいいのやら。
さりとて、他のGUI関連ライブラリは、開発が止まっていたり、導入が面倒だったり、exe化がすんなりいかなかったり、なんだか色々とボロボロな印象で。…まあ、そのあたりは、Python も似たようなものだけど。Python 3.x に対応できなくて放置されたライブラリがゴロゴロしてるし。
そんな状況なので、ファイル選択・フォルダ選択をしたい場合に、DXRuby だけでもソレができるというのは、ありがたいなと。もっとも、DXRuby は GUIアプリを作るためのライブラリではないのだけど…。ただ、ファイルやフォルダを読み込んで、ちょっと簡易に視覚化してみる、てなことに使えそうと思うわけで。
早速試してみたり。
#!ruby -Ks # DXRubyを使ってフォルダを選択するサンプル require 'dxruby' folder = "" font = Font.new(26) Window.loop do break if Input.keyPush?(K_ESCAPE) y = 16 yh = font.size + 4 Window.drawFont(10, y, "Push Z key -> Select Folder", font) Window.drawFont(10, y + 1 * yh, "Folder:[#{folder}]", font) if Input.keyPush?(K_Z) folder = Window.folder_dialog("folder select") if folder == nil folder = "Cancel." end end endこれで、Ruby を使って Windows 上でGUIアプリを作ろうとした場合に、ファイル選択/フォルダ選択をとりあえず DXRuby を使って行う、ということができそうだなと。ありがたや。
Ruby 1.8 の頃は、Windows上でRubyを使ってGUIアプリを作ろうとするなら VisualuRuby (vr/vruby) を使う、という選択肢があったのだけど。Ruby 1.9 になってからは、VisualuRuby は対応してない状態に。一応、ActiveScriptRuby を入れれば同梱されてるらしいけど…。RubyInstaller を入れた場合はどうすればいいのやら。
さりとて、他のGUI関連ライブラリは、開発が止まっていたり、導入が面倒だったり、exe化がすんなりいかなかったり、なんだか色々とボロボロな印象で。…まあ、そのあたりは、Python も似たようなものだけど。Python 3.x に対応できなくて放置されたライブラリがゴロゴロしてるし。
そんな状況なので、ファイル選択・フォルダ選択をしたい場合に、DXRuby だけでもソレができるというのは、ありがたいなと。もっとも、DXRuby は GUIアプリを作るためのライブラリではないのだけど…。ただ、ファイルやフォルダを読み込んで、ちょっと簡易に視覚化してみる、てなことに使えそうと思うわけで。
◎ DXRuby のバージョン取得ってどうやるんだろう。 :
検索してみても答えが見つからず。バージョン番号の取得ができたら、バージョンに応じて処理を変更することができそうだけど…。例えば drawFontEx() に :aa というアンチエイリアス指定用オプションが増えたみたいなので、1.5.6以降とそれより前で記述を変えたほうがいいのかなと。…まあ、:aa については、1.5.6devより前のバージョン上で :aa => true と指定してもエラーは出ないみたいだけど。
DXRuby に限らず、Ruby のライブラリについてバージョン確認する方法は、コレと言ったものが無いようで。 _require されているモジュールのバージョンを知りたい!調べたい! - はちゅにっき に、Gem.loaded_specs['hoge'].version というソレが紹介されてたので試してみたけど、自分の環境ではエラーが出てしまって。
_あーありがち - gem メソッドで gem ライブラリのバージョンを指定 によると、HOGE::VERSION で取得できる場合もあるらしいけど。統一された何かしらは用意されてない状態、なのかな。
ライブラリのバージョン毎の細かい違いをソース側で無理矢理(?)解決するのもどうなんだろうという不安もあるけれど。もっと適切な解決策があるのだろうか…?
DXRuby に限らず、Ruby のライブラリについてバージョン確認する方法は、コレと言ったものが無いようで。 _require されているモジュールのバージョンを知りたい!調べたい! - はちゅにっき に、Gem.loaded_specs['hoge'].version というソレが紹介されてたので試してみたけど、自分の環境ではエラーが出てしまって。
_あーありがち - gem メソッドで gem ライブラリのバージョンを指定 によると、HOGE::VERSION で取得できる場合もあるらしいけど。統一された何かしらは用意されてない状態、なのかな。
ライブラリのバージョン毎の細かい違いをソース側で無理矢理(?)解決するのもどうなんだろうという不安もあるけれど。もっと適切な解決策があるのだろうか…?
[ ツッコむ ]
以上です。