2016-04-21 36 views
0

如何才能暴露一個模塊或一個類從一個紅寶石和關閉一切?如何使所有的寶石類和模塊私人?

例如,在一個my-math庫中,我只想公開Math模塊,但沒有其他的,如Math::Utils或類似的。

我想強制使用寶石的唯一方法之一。

至少很難訪問內部類將有所幫助(甚至在運行時刪除名稱將比開放訪問更好)。

+0

是你想隱藏在某個模塊的命名空間中的所有人嗎? – sawa

+0

你的問題不清楚。你想讓它們變得私密還是無法訪問? – sawa

回答

2

不清楚你正在嘗試做什麼,但是如果你想要私有常量,爲什麼不直接聲明它們呢?

module Namespace 
    module Secret 
    end 
    private_constant :Secret 
    Secret # => Namespace::Secret 
end 

Namespace::Secret # => NameError. Private constant Namespace::Secret referenced. 
+1

是的,使私人。這應該做的工作,謝謝! –