0
我有一個類:有沒有辦法在Ruby中創建臨時名稱空間和常量?
class MyClass
def self.say_hello
puts "hello"
end
end
,我想創建一個進程來覆蓋類和它的方法暫時:
begin "a temporary namespace, constants, variables and methods within this code"
Thread.current[:neverland] = -> do
Object.instance_exec do
class MyClass
def self.say_hi
puts "hi"
end
end
MyClass.say_hi
MyClass.say_hello
end
end
end
> Thread.current[:neverland].call
=> "hi"
=> "hello"
> MyClass.methods - Object.methods
=> ["say_hello"]
> MyClass.say_hi
=> undefined method `say_hi' for MyClass:Class (NoMethodError)
有沒有這樣的事情在Ruby中還是我在做夢?命名空間無污染,臨時常量,方法,命名空間,類。乾淨,專注和優化的代碼,沒有太多分心。
此鏈接** **優化**的介紹使得這個答案成爲低估的寶石!謝謝 –