class RackRabbit::Middleware::ProgramName
Public Class Methods
new(app, default = "waiting for request")
click to toggle source
# File lib/rack-rabbit/middleware/program_name.rb, line 5 def initialize(app, default = "waiting for request") @app = app @default = default set_program_name(default) end
Public Instance Methods
call(env)
click to toggle source
# File lib/rack-rabbit/middleware/program_name.rb, line 11 def call(env) info = "#{env['REQUEST_METHOD']} #{env['REQUEST_PATH'] || env['PATH_INFO']}" set_program_name info status, headers, body = @app.call(env) set_program_name @default [status, headers, body] end
sanitize(value)
click to toggle source
# File lib/rack-rabbit/middleware/program_name.rb, line 23 def sanitize(value) if value.valid_encoding? value.force_encoding('utf-8') else value.chars.select(&:valid_encoding?).join.force_encoding('utf-8') end end
set_program_name(name)
click to toggle source
# File lib/rack-rabbit/middleware/program_name.rb, line 19 def set_program_name(name) $PROGRAM_NAME = sanitize($PROGRAM_NAME.split(" -- ")[0] + " -- #{name}")[0..200] end