class Rory::RequestParameterLogger

Public Class Methods

new(app, logger = nil, options = {}) click to toggle source
# File lib/rory/request_parameter_logger.rb, line 5
def initialize(app, logger = nil, options = {})
  @app = app
  @logger = logger
  @filters = options.fetch(:filters, [])
end

Public Instance Methods

call(env) click to toggle source
# File lib/rory/request_parameter_logger.rb, line 11
def call(env)
  @env = env
  @env['rack.input'].rewind
  log_request
  @app.call(@env)
end

Private Instance Methods

filtered_params() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 41
def filtered_params
  parameter_filter.filter(unfiltered_params)
end
log_message(message) click to toggle source
# File lib/rory/request_parameter_logger.rb, line 29
def log_message(message)
  if logger.respond_to?(:write)
    logger.write(message + "\n")
  else
    logger.info(message)
  end
end
log_request() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 20
def log_request
  log_message(request_signature)
  log_message("Parameters: #{filtered_params}")
end
logger() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 25
def logger
  @logger || @env['rack.errors']
end
parameter_filter() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 37
def parameter_filter
  Rory::ParameterFilter.new(@filters)
end
request() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 45
def request
  Rack::Request.new(@env)
end
request_signature() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 53
def request_signature
  %{Started #{@env['REQUEST_METHOD']} "#{@env['PATH_INFO']}" for #{@env['REMOTE_ADDR']} at #{Time.now}}
end
unfiltered_params() click to toggle source
# File lib/rory/request_parameter_logger.rb, line 49
def unfiltered_params
  request.params
end