2012-02-20 16 views
2

私は他の多くのモジュールを含むルビーモジュールを持っています。ここに簡単な例があります:モジュール内のルビーモジュール

module Foo 

    module Bar 
    end 

    module Baz 
    end 

end 

を除いて、Fooモジュール内に6-7モジュールがあります。私はBar/Bazを別のファイルに置くことができる方法はありますか?それでも同じ振る舞いをしますか?現在、すべてのコードは1つのファイルの中にあり、非常に未編成です。

# foo.rb 
module Foo 
end 

# foo_bar.rb 
module Foo::Bar 
end 

# foo_baz.rb 
module Foo::Baz 
end 

NB:

答えて

13

あなたは、このように別のファイル内の各それらを定義することができます。 Fooモジュールを定義してから、Foo::Barのようなモジュールをこの表記で定義できるようにする必要があります()。

それとも、ただ、彼らが現在だと、それはまだ動作するはず形式で異なる名前のファイルにそれらを置くことができます:

# foo_bar.rb 
module Foo 
    module Bar 
    end 
end 

# foo_baz.rb 
module Foo 
    module Baz 
    end 
end 
+0

ああ、素晴らしいです!ありがとう。 – 0xSina

+0

問題ありません!喜んで助けてください。 – Russell

+1

@PragmaOnce 'module Foo :: Bar'は、' module Foo'で 'Foo'を定義している場合にのみ使用できます。そうでないとエラーが発生します。 – matt

関連する問題