启动Rails 3.x服务器(rails s
)时,是否可以在加载时打印每个文件的路径和名称?
如下所示,但对于Rails require
d的每个文件(例如,考虑加载每个铁路):
Loading boot.rb...
Loading application.rb...
Loading environment.rb...
Loading development.rb...
Loading routes.rb...
请注意,我只需在上面的文件中使用puts
调用即可完成上述操作,但这不是我的目标。相反,我希望通过任何代码打印文件名require
d,而不仅仅是在我的应用程序中,而是在调用require
时。例如,打印在Rails代码中调用require
的文件名。
更新
谢谢@ScottJShea。我使用了以下代码:
在application.rb
:
require File.expand_path('../boot', __FILE__)
module Kernel
def require_and_print(string)
puts string
require_original(string)
end
alias_method :require_original, :require
alias_method :require, :require_and_print
end
....
答案 0 :(得分:2)
看起来您需要编辑kernel.rb。这是一个SO Post关于它的响应者建议这一点(尽管你可以将其限制为require方法):
module Kernel
def load_and_print(string)
$:.each do |p|
if File.exists? File.join(p, string)
puts File.join(p, string)
break
end
end
load_original(string)
end
alias_method :load_original, :load
alias_method :load, :load_and_print
end