new -> Module
[permalink][rdoc][edit]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" のどちらかに決まる