BigW Consortium Gitlab

rack_lineprof.rb 971 Bytes
Newer Older
1 2 3 4
# The default colors of rack-lineprof can be very hard to look at in terminals
# with darker backgrounds. This patch tweaks the colors a bit so the output is
# actually readable.
if Rails.env.development? and RUBY_ENGINE == 'ruby' and ENV['ENABLE_LINEPROF']
Valery Sizov committed
5
  Rails.application.config.middleware.use(Rack::Lineprof)
6 7 8 9 10 11

  module Rack
    class Lineprof
      class Sample < Rack::Lineprof::Sample.superclass
        def format(*)
          formatted = if level == CONTEXT
12 13 14 15
                        sprintf "                 | % 3i  %s", line, code
                      else
                        sprintf "% 8.1fms %5i | % 3i  %s", ms, calls, line, code
                      end
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

          case level
          when CRITICAL
            color.red formatted
          when WARNING
            color.yellow formatted
          when NOMINAL
            color.white formatted
          else # CONTEXT
            formatted
          end
        end
      end
    end
  end
end