2009年8月2日日曜日

INI

ブログ初投稿です。

Windows の .ini ファイルを読み込む Ruby クラスを作成しました。
.ini フィルにタブが含まれている場合の挙動がおかしいですが、とりあえずアップロードします。
Ruby の YAML クラスと似たインターフェイスを持たせています。(といっても、現時点では、load と load_file だけをサポートしています。)
例えば、次のような mailaccount.ini ファイルに対して、

[SMTP]
Server = smtp.foo.com

[POP]
Server = pop.foo.com
User = jack

以下の Ruby コードを実行すると、cfg に mailaccount.ini の中身が Hash オブジェクトとして読み込まれます:

require 'ini'

cfg = INI.load_file( 'mailaccount.ini' )

p cfg['SMTP']['Server'] # => "smtp.foo.com"
p cfg['POP' ]['Server'] # => "pop.foo.com"
p cfg['POP' ]['User' ] #=> "jack"

ini.rb というファイル名で $RUBYLIB でパスのとおっているディレクトリに格納してご利用ください。

より詳細なドキュメントは、rdoc 形式でソースに埋め込んでいますので、以下の手順でご覧ください:
  1. (rdoc がインストールされていない環境では) gem install rdoc を実行する。
  2. $RUBYLIB で、rdoc -U ini.rb を実行。
  3. $RUBYLIB/doc/index.html をブラウザで開く。