也许有一些工具可以做到这一点?我必须提取整个块和子块,例如'
答案 0 :(得分:3)
我怀疑任何解析器都可以帮助将代码块加载到变量中。它需要eval
,但即使使用eval
,也很难收集所有上下文等。
目标是rspec
场景,我会使用monkeypatching rspec
core,在你自己的探测器之前添加:
def before(*args, &block)
MyCollector.collect_block(block)
super(*args, &block)
end
答案 1 :(得分:1)
您可以使用
进行解析https://github.com/seattlerb/ruby_parser 要么 https://github.com/whitequark/parser
并将收到一个AST(Abstrax语法树),然后您可以进一步处理。根据您从源代码中需要的详细信息量,您还可以使用一些Regexp或编写自己的解析器... 也许您可以告诉我们更多关于您的项目(输入,输出,原因)