【发布时间】:2018-03-16 19:01:46
【问题描述】:
如果 any 方法的源代码明确写在文件中,there is 是一个显示代码的简洁方法:
A.instance_method(:foo).source
但如果我在 dynamically 中定义类和方法
Object.const_set(dynamic_name, Class.new { def foo() puts 'bar' end })
我在尝试获取此方法的来源时收到错误,在这种情况下使用instance_method(:foo).source时
MethodSource::SourceNotFoundError: Could not load source for : No such file or directory @ rb_sysopen - (eval)
如何获取动态定义方法的来源?有可能吗?
【问题讨论】:
-
根据gem的文档,有limitations:它“不能返回C方法的源代码”和它“不能返回动态定义方法的源代码” 。所以不,那颗宝石是不可能的。
-
@Stefan,我看到了这个,但没有限制只使用那个 gem
-
当使用库时,写那个。
-
完成了,陛下
标签: ruby