# File lib/active_support/testing/performance.rb, line 126 def environment unless defined? @env app = "#{$1}.#{$2}" if File.directory?('.git') && %xgit branch -v` =~ %r^\* (\S+)\s+(\S+)/ rails = Rails::VERSION::STRING if File.directory?('vendor/rails/.git') Dir.chdir('vendor/rails') do rails += ".#{$1}.#{$2}" if %xgit branch -v` =~ %r^\* (\S+)\s+(\S+)/ end end ruby = defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby' ruby += "-#{RUBY_VERSION}.#{RUBY_PATCHLEVEL}" @env = [app, rails, ruby, RUBY_PLATFORM] * ',' end @env end
# File lib/active_support/testing/performance.rb, line 118 def record avg = @metric.total / profile_options[:runs].to_i now = Time.now.utc.xmlschema with_output_file do |file| file.puts "#{avg},#{now},#{environment}" end end
# File lib/active_support/testing/performance.rb, line 113 def run profile_options[:runs].to_i.times { run_test(@metric, :benchmark) } @total = @metric.total end
# File lib/active_support/testing/performance.rb, line 162 def output_filename "#{super}.csv" end
# File lib/active_support/testing/performance.rb, line 149 def with_output_file fname = output_filename if new = !File.exist?(fname) FileUtils.mkdir_p(File.dirname(fname)) end File.open(fname, 'ab') do |file| file.puts(HEADER) if new yield file end end