这实质上是Ruby Metaprogramming 2的一个片段。在这部分中,他们将这个例子渲染出来,但并没有真正的解释。细化范围如何工作?
module MyRefinement
refine MyClass do
def my_method
"refined"
end
end
end
class MyClass
def my_method
"original"
end
def another_method
my_method
end
end
using MyRefinement
obj = MyClass.new
puts obj.my_method #=> "refined"
puts obj.another_method #=> "original"
当你从另一个调用方法my_method
为什么不细化申请?
阅读本https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/RefinementsSpec ...我困惑阅读完整页面后。 –