Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Module > new

singleton method Module.new

new -> Module
new {|mod| ... } -> Module

名前の付いていないモジュールを新しく生成して返します。

ブロックが与えられると生成したモジュールをブロックの引数に渡し、 モジュールのコンテキストでブロックを実行します。

mod = Module.new
mod.module_eval {|m| ... }
mod

と同じです。 ブロックの実行は Module#initialize が行います。

ブロックを与えた場合も生成したモジュールを返します。

このメソッドで生成されたモジュールは、 最初に名前が必要になったときに名前が決定します。 モジュールの名前は、 そのモジュールが代入されている定数名のいずれかです。

m = Module.new
p m               # => #<Module 0lx40198a54>
p m.name          # => nil   # まだ名前は未定
Foo = m
# m.name          # ここで m.name を呼べば m の名前は "Foo" に確定する
Bar = m
m.name            # "Foo" か "Bar" のどちらかに決まる