audit: add benchmark inject code

Closes Homebrew/homebrew#40847.

Signed-off-by: Xu Cheng <xucheng@me.com>
This commit is contained in:
Xu Cheng 2015-06-18 15:41:25 +08:00
parent 89b20cf61e
commit d770a874e4

View File

@ -20,6 +20,26 @@ module Homebrew
ENV.activate_extensions!
ENV.setup_build_environment
if ARGV.switch? "D"
FormulaAuditor.module_eval do
instance_methods.grep(/audit_/).map do |name|
method = instance_method(name)
define_method(name) do |*args, &block|
begin
time = Time.now
method.bind(self).call(*args, &block)
ensure
$times[name] ||= 0
$times[name] += Time.now - time
end
end
end
end
$times = {}
at_exit { puts $times.sort_by{ |k, v| v }.map{ |k, v| "#{k}: #{v}" } }
end
ff = if ARGV.named.empty?
Formula
else