This file is indexed.

/usr/lib/ruby/vendor_ruby/merb-core/rack/middleware/profiler.rb is in ruby-merb-core 1.1.3+dfsg-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
begin
  require "ruby-prof"
rescue LoadError => e
  Merb.fatal! "You need ruby-prof installed to use the profiler middleware", e
end

module Merb
  module Rack
    class Profiler < Merb::Rack::Middleware

      # :api: private
      def initialize(app, types = [RubyProf::ALLOCATIONS, RubyProf::PROCESS_TIME])
        super(app)
        @types = types
      end

      # :api: plugin
      def call(env)
        measure_names = { RubyProf::ALLOCATIONS => 'allocations', 
          RubyProf::PROCESS_TIME => 'time', RubyProf::MEMORY => "memory" }

        ret = nil

        GC.disable
        @types.each do |type|
          next if type.nil?
          
          if GC.respond_to?(:enable_stats)
            GC.enable_stats || GC.clear_stats
          end

          RubyProf.measure_mode = type
          RubyProf.start
          100.times do
            ret = super
          end
          result = RubyProf.stop
          printer = RubyProf::CallTreePrinter.new(result)
          path = "merb_profile_results" / env["PATH_INFO"]
          FileUtils.mkdir_p(path)
          printer.print(
            File.open(
              "#{path}/callgrind.out.#{measure_names[RubyProf::measure_mode]}",     
              'w'))

          GC.disable_stats if GC.respond_to?(:disable_stats)
        end
        GC.enable
        ret
      end

      
    end
  end
end