使用 Pryshow-source
并没有像我预期的那样向我展示方法实现:
[2] pry(main)> show-source Object#extend
From: eval.c (C Method):
Owner: Kernel
Visibility: public
Number of lines: 3
static VALUE
rb_obj_extend(argc, argv, obj)
int argc;
这就是我所得到的,但根据官方文档(我安装了 pry-doc)我应该看到:
[1] pry(main)> show-source Object#extend
From: eval.c (C Method):
Owner: Kernel
Visibility: public
Number of lines: 16
static VALUE
rb_obj_extend(int argc, VALUE *argv, VALUE obj)
{
int i;
if (argc == 0) {
rb_raise(rb_eArgError, "wrong number of arguments (at least 1)");
}
for (i = 0; i < argc; i++)
Check_Type(argv[i], T_MODULE);
while (argc--) {
rb_funcall(argv[argc], rb_intern("extend_object"), 1, obj);
rb_funcall(argv[argc], rb_intern("extended"), 1, obj);
}
return obj;
}
[2] pry(main)>
关于为什么会发生这种情况的任何想法?