class Rack::UsefulProcline

Constants

VERSION

Attributes

config[RW]
app[RW]
config[RW]

Public Class Methods

configure() { |config| ... } click to toggle source
# File lib/rack/useful_procline.rb, line 12
def configure
  @config ||= Config.new
  yield(config) if block_given?
  @config
end
new(app) click to toggle source
# File lib/rack/useful_procline.rb, line 34
def initialize(app)
  @app = app
  @config = Rack::UsefulProcline.configure
end

Public Instance Methods

call(env) click to toggle source

Public

# File lib/rack/useful_procline.rb, line 40
def call(env)
  @request = Request.new(env)
  
  prefix = $0.split(']')[0] + "]"
  procline = prefix.dup
  procline = procline_before_request(procline)
  
  set_procline(procline[0..200])
  
  status, headers, body = @app.call(env)
  
  procline = prefix.dup
  procline = procline_after_request(procline, status)
  set_procline(procline)
  
  [status, headers, body]
end
procline_after_request(procline, status) click to toggle source
# File lib/rack/useful_procline.rb, line 91
def procline_after_request(procline, status)
  procline.concat(" : last status: #{status}.")
  if @config.opts[:show_request_uuid]
    uuid = request_uuid || "No request uuid found"
    procline += " last request_uuid: #{uuid}."
  end
  procline += " Waiting for req."
end
procline_before_request(procline) click to toggle source
# File lib/rack/useful_procline.rb, line 67
def procline_before_request(procline)
  if @config.opts[:show_request_method] && @request
    procline.concat(" : #{@request.request_method}")
  end
  
  if @config.opts[:show_request_path] && @request
    procline.concat(" : #{@request.path_info}")
  end
  
  if @config.opts[:show_request_uuid]
    uuid = request_uuid || "No request uuid found"
    procline.concat(" : #{uuid}")
  end
  
  procline
end
request_uuid() click to toggle source
# File lib/rack/useful_procline.rb, line 84
def request_uuid
  if @request
    uuid = @request.uuid(@config.opts[:request_uuid_key])
    uuid[0..7] if uuid
  end
end
sanitize_utf8(string) click to toggle source
# File lib/rack/useful_procline.rb, line 62
def sanitize_utf8(string)
  return string.force_encoding('utf-8') if string.valid_encoding?
  string.chars.select(&:valid_encoding?).join.force_encoding('utf-8')
end
set_procline(value) click to toggle source
# File lib/rack/useful_procline.rb, line 58
def set_procline(value)
  $0 = sanitize_utf8(value)
end