Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中包装内核方法_Ruby - Fatal编程技术网

在ruby中包装内核方法

在ruby中包装内核方法,ruby,Ruby,试图调试我的环境中可能存在的require/load问题(仅打印$”&$:是不够的),我希望包装load方法,但我预期的print语句没有执行,因此我假设以下操作没有如我所希望的那样工作 module Kernel alias :old_load :load def load(fname, wrap=false) puts "loading #{fname}" old_load fname, wrap end end 那么,通常是否可以包装内核方法(使用别名或其他方

试图调试我的环境中可能存在的require/load问题(仅打印
$”
&
$:
是不够的),我希望包装load方法,但我预期的print语句没有执行,因此我假设以下操作没有如我所希望的那样工作

module Kernel
  alias :old_load :load
  def load(fname, wrap=false)
    puts "loading #{fname}"
    old_load fname, wrap
  end
end
那么,通常是否可以包装内核方法(使用别名或其他方式)?如果可以,正确的语法是什么


谢谢

你确定吗?它在1.9.2中对我有效。是的,在这里也有效。记住在这个定义之后加载。@tadman,@p4010你们是对的……我假设
require
会自然调用
加载
,并想在那里调试它。但是它调用了一个内部C函数
rb\u load\u internal
>(请参阅),这将无法用ruby进行包装。如果您将其作为正确答案发布,我将接受您的任何一个答案…如果您有除$:$”之外的任何提示,strace也将非常好-谢谢!我不知道我们中是否有人提供了这个问题的答案。为什么不用你发现的自我回答呢?也许我误解了什么,但包装
对我来说需要