よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

June 16, 2003 [おもひで]

[Ruby-GNOME2] Sokoban

なぜかハマってしまいました。んでもって、コンティニューができないのが不満になってきたので、Ruby/GConfを使ってコンティニュー機能を付けてみました。起動すると前回の続きから始まります。

[Ruby-GNOME2] Ruby/GConf

今回初めて使ってみたのですが(^^;)、とっても便利です、これ。

Ruby/GConfって何者かというと、要はアプリケーションの設定ファイルなんかを保存・読み出ししたりするためのライブラリなのですが、データを保存・読込するだけではなく、ロックとかも勝手にやってくれるし、変更がかかるとイベントをあげたりもします。かなり高機能なくせして使う方はメチャクチャ簡単というすばらしーライブラリです。

例えば、以下のようにして使います。

require 'gconf2'
                                                                                
client = GConf::Client.new
  
#データの読込
p client["/apps/hoge/laststage"]
p client["/apps/hoge/name"]
  
#データの書込
client["/apps/hoge/laststage"] = 1
client["/apps/hoge/name"] = "Ruby-GNOME2"

この例ではわざと読込を先にやっているので1度目はnilが出力されますが、2度目に実行したときは1, Ruby-GNOME2が出力されます。

たったこれだけで永続的にデータを保存・読み出しできます。

データ自体はgconfdというデーモンが管理していて、非同期で$HOME/.gconf/apps/hoge/%gconf.xmlというファイルにXML形式で書き込まれます。

データには基本的な型しかサポートしてませんが、設定情報としてはこれで十分でしょう。

岡さんの日本語訳がとてもわかりやすいですので興味のある方はどうぞ。


編集