问题
给定以下代码,我想在不运行代码的情况下muffinize
提取并传递所有参数:
$ask = false
muffinize("Shoop")
muffinize("Woop") if($ask == true)
if($ask == false)
muffinize("Pants")
end
这是我期望的输出:
Call#:Args
1:"Shoop"
2:"Woop"
3:"Pants"
到目前为止我在做什么
我正在使用Ripper解析源代码以查找调用该方法的位置。然后我在调用该方法的代码行中查找字符范围。从该行中提取方法后,我将使用Parser gem 对其进行分析。完成后,我将发布代码作为答案,但我很想知道是否有更好的方法来做到这一点。我不太了解代码解析,所以此时我有点盲目地四处游荡。
为什么不只使用正则表达式
正则表达式仍会捕获注释代码块。可能还有其他我还没有考虑过的极端情况。