抱歉,问题标题含糊不清,但我不知道是什么原因导致以下问题:
module Capistrano
class Configuration
def puts string
::Kernel.puts 'test'
end
end
end
现在当 Capistrano 调用时puts
,我看不到“测试”,但我看到了原始输出。
但是,当我还添加此内容时:
module Kernel
def puts string
::Kernel.puts 'what gives?'
end
end
现在,突然,puts
实际上返回的是“test”,而不是“what give?”,不是原始内容,而是“test”。
是否有合理的解释为什么会发生这种情况(除了我对 Ruby Kernel 内部工作原理的有限理解)?
在我看来(但不知何故“似乎有效”)的事情:
- 我希望第一个块返回“测试”,但它没有
- 我希望这两个块的组合返回'what give?',但它返回'test'?
- 我覆盖 Kernel.puts 的方式对我来说似乎是一个永无止境的循环?