Ruby开发:工具使用、Gem管理与代码优化全解析
1. 同时运行多个分析工具
在Ruby开发中,有时我们希望同时使用多个分析工具,例如Ruby分析器和Ruby跟踪器。但存在一个问题,当一个工具调用 set_trace_func 时,会覆盖另一个工具设置的跟踪函数。
为了解决这个问题,我们可以修改 set_trace_func ,让它保存一个跟踪函数数组,而不是单一的跟踪函数。以下是实现这一功能的 multitrace.rb 库代码:
# multitrace.rb
$TRACE_FUNCS = []
alias :set_single_trace_func :set_trace_func
def set_trace_func(proc)
if (proc == nil)
$TRACE_FUNCS.clear
else
$TRACE_FUNCS << proc
end
end
trace_all = Proc.new do |event, file, line, symbol, binding, klass|
$TRACE_FUNCS.each { |p| p.call(event, file, line, symbol, binding, klass)}
end
set_single_trace_func trace_all
def unset_trace_func(proc)
$TRACE_FUNCS.delete(proc)
end
现在,我们
超级会员免费看
订阅专栏 解锁全文
147

被折叠的 条评论
为什么被折叠?



