5
我有一個模塊,其中包含類名爲String
(其中包括)。我需要按名稱查找類,並優雅地退後來,如果沒有這樣的類。是否有可能縮小紅寶石不斷查找
module Mod1
module String
end
end
Mod1.const_get 'String'
#⇒ Mod1::String
Kernel.const_get '::Mod1::String'
#⇒ Mod1::String
到目前爲止,這麼好。當我嘗試查找不存在的類時,我預計會收到NameError
,這很好。問題是,如果沒有與現有的全局命名空間給定名稱一類,它被返回:
Mod1.const_get 'Fixnum'
#⇒ Fixnum < Integer
Kernel.const_get '::Mod1::Fixnum'
#⇒ Fixnum < Integer
我理解的原因,但我的問題是:有一個不折不扣的只能在給定名稱空間中查找常量的方法?
現在我請與
result.to_s.start_with?(namespace)
的結果,但這絕對不是縮小查找奇的方式。
完美,謝謝。明顯的建議「看看方法文檔」照常工作。 – mudasobwa
我可能建議鏈接到文檔而不是MRI源? http://ruby-doc.org/core-2.3.1/Module.html#method-i-const_get –