Hatena::Grouparaistudy

czk-htnの日記

2006-08-08

[] 9. モジュール

9.1 名前空間

  • moduleを使用すれば名前空間を定義することができる
  • モジュール名に続けてメソッド名を指定することで呼び出せる
  • だいたい1モジュールを1ファイル(xxxx.rb)として分割する
  • モジュールファイルはrequire文で読み込む

9.2 Mixin

9.3 イテレータとEnumerableモジュール

  1. 自分のクラスにeach、<=>メソッドを定義する
  2. Enumerableモジュールをincludeする
  3. Enumerableモジュールの全てメソッドが使えるようになる!

9.4 他のファイルを取り込む

  • loadは実行されるたびにファイルを(無条件に)読み込む
    • 実行中に変更される可能性があるファイルを読み込む時に便利
  • requireは一度だけ読み込む
  • load、requireには絶対パス相対パスも指定可能
    • 相対パスの場合は検索パス全てを検索する
    • 検索パスは$:に設定されている(実行中に変更可能)

[] あとで解決する (名前空間の命名規則)

  • 名前空間の命名規則ってあるのかな(Javaのcom.apache.xxxxみたいに)
    • (2006.11.05 追記) 厳密にはなさそうだけど、lib以下のディレクトリ構造にあわせるみたい
  • モジュールファイル名(xxxx.rb)が衝突していた場合はどうなるんだろう?
    • 検索パスの左から順次検索される
トラックバック - http://araistudy.g.hatena.ne.jp/czk-htn/20060808