2016-03-24 52 views
0

我有一個小問題(也許它甚至心不是一個問題)指定要使用的文件夾中創建類對象的Ruby

我正在用Ruby應用程序,文件夾/文件結構是這樣的:

OrderSet/ 
..item.rb 
..file.rb 
..order_object.rb 
OrderGet/ 
..item.rb 
..files.rb 
..order.rb 

正如你所看到的,我得到了兩個item.rb文件,它們在類結構中都是不同的。現在我需要創建一個OrderSet/item.rb對象,我如何指定它需要查看OrderSet並且不會獲得OrderGet之一?

我必須弄清楚,主rb文件中需要所有文件。

我曾嘗試做OrderSet.Item(類被稱爲item.rb的內部項目),但抱怨的ininitialized不斷OrderSet

提前感謝!

[編輯] 我也試圖讓模塊出來,也許我不能正確理解這個概念,但我已經與OrderSet.Item.new試了一下(OrderSet作爲模塊名稱)

回答

4

你可以使用一個模塊來創建一個名稱空間 - 這樣,每一組類都將被封裝爲他們所做的事情(你的例子中的文件夾名稱)。因此,在OrderSet類將被包裝例如OrderSet一個模塊/ item.rb的將變成:

module OrderSet 
    class Item 
    # methods and properties 
    end 
end 

然後,你可以使用它像

new_order_set = OrderSet::Item.new 

RubyMonk有一個名爲Modules As Namespaces教訓它有更多的細節以及您可以在瀏覽器中運行的示例。

相關問題