新刊書「プログラミング言語 Ruby」をよみつつ..
p267. 7.6.2.1 ラップされたロード の項に
...指定されたファイルを「ラップ」し..とあった。さっそく試してみたいのだけど第二引数を指定する記述がみあたらないので
プログラミングRuby 第2版 ライブラリ編
を引っ張りだし調べたら P98
load (file_name, wrap=true)
とあった。
config の用意
module MineMod
module MineModConfig
class ConfHash
def initialize(h)
@h = h
end
end
def self.conf
config = ConfHash.new(
:dir_text =>'data',
:file_obj =>'mine.obj',
:file_name =>'mine.txt'
)
end
end
end
$MODMINE = MineMod::MineModConfig
# グローバル変数にモジュールを格納
load-wrap-test.rb
$LOAD_PATH.delete(".")
$LOAD_PATH.unshift File.dirname(File.expand_path($PROGRAM_NAME))
load 'config', wrap=true
p $MODMINE#.conf
load-wrap-test.rb を実行すると
#<Module:0x1f37f4>::MineMod::MineModConfig
本に書かれてあるとおり load する ファイルの末尾にグローバル変数をおいておくと、そのグローバル変数にモジュールが収められているのがわかった。
# config の書き方は
Rubyist Magazine 出張版 正しいRubyコードの書き方講座
を参考にしてます。
--imported_from
http://www.midore.net/daybook/2009/02/1233591000.html
0 件のコメント:
コメントを投稿