Sha256: d6d432cb100b02221e413c07ddff5ae363d31e515a2dd47224b7a2c1ebc04934

Contents?: true

Size: 817 Bytes

Versions: 2

Compression:

Stored size: 817 Bytes

Contents

module Rack::PerftoolsProfiler
  
  class Action

    def initialize(env, profiler, middleware)
      @env = env
      @request = Rack::Request.new(env)
      @data_params = @request.params.clone
      @profiler = profiler
      @middleware = middleware
    end
    
    def act
      # do nothing
    end

    def self.for_env(env, profiler, middleware)
      request = Rack::Request.new(env)
      klass = 
        case request.path_info
        when %r{/__start__$}
          StartProfiling
        when %r{/__stop__$}
          StopProfiling
        when %r{/__data__$}
          ReturnData
        else
          if ProfileOnce.has_special_param?(request)
            ProfileOnce
          else
            CallAppDirectly
          end
        end
      klass.new(env, profiler, middleware)
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rack-perftools_profiler-0.4.0 lib/rack/perftools_profiler/action.rb
rack-perftools_profiler-0.3.0 lib/rack/perftools_profiler/action.rb