我需要require
从 Ruby 文件中覆盖,这是我的 start.rb 所必需的,它是应用程序入口点。rubygems
在此之前加载,在 start.rb 中。
我尝试的一切都给了我一个堆栈溢出错误。
正确的方法是什么?
我需要require
从 Ruby 文件中覆盖,这是我的 start.rb 所必需的,它是应用程序入口点。rubygems
在此之前加载,在 start.rb 中。
我尝试的一切都给了我一个堆栈溢出错误。
正确的方法是什么?
一般来说,如果要修补一些内置方法,首先应该为原始方法创建一个别名。大多数时候,您会在覆盖方法中的某个地方调用旧的。否则,您将失去原始方法的功能,并且可能会破坏应用程序逻辑。
ri require
或阅读文档以找出该require
方法的定义位置。你会发现它在Kernel
模块中。此外,您会找到它的方法签名,以便了解参数列表的样子。Kernel
。除非您知道自己在做什么,否则不要破坏功能。module Kernel
# make an alias of the original require
alias_method :original_require, :require
# rewrite require
def require name
puts name
original_require name
end
end
# test the new require
require 'date'