2012-02-05 123 views
2

我正在使用Ruby創建一個編譯器的項目,即使簡單的編譯器仍然會有很多代碼。我打算在具有類,如SymbolTableLexerParser等....包含類的Ruby模塊

所有這些類執行特定的操作,但我還是想給他們一個在命名空間組,是有可能做到這一點在單獨的文件?

例如:

文件#1 SymbolTable.rb

module PL0Compiler 
    class SymbolTable 
    #.... 
    end 
end 

文件#2 Lever.rb

module PL0Compiler 
    class Lexer 
    #.... 
    end 
end 
+0

爲什麼不呢? ....... – sawa 2012-02-05 18:05:58

+0

@sawa,這就是我問的?我正在尋找正確的方法將相關的類組合到1個名稱空間中,即使這些類位於單獨的文件中 – 2012-02-05 18:11:32

回答

3

是的,它是。但是,這會讓你花費更少的時間來試用,而不是問,所以這是一個奇怪的問題。也許你不知道如何訪問它? Here是一個相當複雜的例子。

+0

我已經在同一個源ruby文件中嵌套了模塊。我不確定是否移動他們會改變任何事情。我搜索了但沒有看到任何例子。 – 2012-02-05 18:23:54

+0

Ruby不關心你的代碼是在什麼文件中定義的。當它查找類/模塊時,它通過搜索你當前包含的任何類/模塊,然後從你指定的第一個模塊中進行搜索,所以在巢下。在頂層,你被包含在Object中,所以類不重要。 (請注意,Rails中的位置很重要,因爲它處理代碼重新加載並過濾你的後退等等) – 2012-02-05 18:28:35