Sha256: fa392c72982db727088e55545c10fd386344e1c6edf110517917e62eb849213d

Contents?: true

Size: 895 Bytes

Versions: 36

Compression:

Stored size: 895 Bytes

Contents

module Rack
  # Middleware to update the process title ($0) with information about the
  # current request. Based loosely on:
  # - http://purefiction.net/mongrel_proctitle/
  # - http://github.com/grempe/thin-proctitle/tree/master
  #
  # NOTE: This will not work properly in a multi-threaded environment.
  class ProcTitle
    F = ::File
    PROGNAME = F.basename($0)

    def initialize(app)
      @app = app
      @appname = Dir.pwd.split('/').reverse.
        find { |name| name !~ /^(\d+|current|releases)$/ } || PROGNAME
      @requests = 0
      $0 = "#{PROGNAME} [#{@appname}] init ..."
    end

    def call(env)
      host, port = env['SERVER_NAME'], env['SERVER_PORT']
      meth, path = env['REQUEST_METHOD'], env['PATH_INFO']
      @requests += 1
      $0 = "#{PROGNAME} [#{@appname}/#{port}] (#{@requests}) " \
           "#{meth} #{path}"

      @app.call(env)
    end
  end
end

Version data entries

36 entries across 36 versions & 8 rubygems

Version Path
rack-contrib-2.2.0 lib/rack/contrib/proctitle.rb
rack-contrib-2.1.0 lib/rack/contrib/proctitle.rb
rack-contrib-2.0.1 lib/rack/contrib/proctitle.rb
rack-contrib-2.0.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.8.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.7.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.6.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.5.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.4.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.3.0 lib/rack/contrib/proctitle.rb
rack-contrib-1.2.0.39.g17d21b4 lib/rack/contrib/proctitle.rb
rack-contrib-1.2.0 lib/rack/contrib/proctitle.rb
cavalle-rack-contrib-1.0.0 lib/rack/contrib/proctitle.rb
rack-rack-contrib-0.9.1 lib/rack/contrib/proctitle.rb
rack-rack-contrib-0.9.2 lib/rack/contrib/proctitle.rb
tricycle-rack-contrib-0.9.3 lib/rack/contrib/proctitle.rb
rack-contrib-1.1.0 lib/rack/contrib/proctitle.rb
corntrace-rack-contrib-1.0.2.3 lib/rack/contrib/proctitle.rb
corntrace-rack-contrib-1.0.2.2 lib/rack/contrib/proctitle.rb
corntrace-rack-contrib-1.0.2.1 lib/rack/contrib/proctitle.rb