2009/02/03

load-wrap

新刊書「プログラミング言語 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 件のコメント: