class ZgcpToolkit::Formatter::Request

Constants

FILTERED_ENV_LIST

Public Instance Methods

call(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 39
def call(request)
  log_object = {}
  log_object[:request]     = request_filter(request)
  log_object[:session]     = session_filter(request)
  log_object[:environment] = environment_filter(request)
  log_object
end
format_for_report(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 47
def format_for_report(request)
  log_object = {}
  log_object[:request]     = beauty_format request_filter(request)
  log_object[:session]     = beauty_format session_filter(request)
  log_object[:environment] = beauty_format separation_environment_filter(request)

  result = log_object.map { |key, value| "#{key.capitalize}:\n#{value}\n" }
  result.join("\n")
end

Private Instance Methods

beauty_format(data) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 59
def beauty_format(data)
  data.map { |k,v| "#{k.to_s.indent(4)}: #{v}" }.join("\n")
end
environment_filter(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 63
def environment_filter(request)
  result = {}
  request.filtered_env.keys.each do |key|
    result[key] = request.filtered_env[key]
  end
  result
end
request_filter(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 86
def request_filter(request)
  result = {}
  result[:url]            = request.url
  result[:request_method] = request.request_method
  result[:ip_address]     = request.remote_ip
  result[:parameters]     = request.filtered_parameters.inspect
  result[:timestamp]      = Time.current
  result[:server]         = Socket.gethostname
  result[:process]        = $$
  if defined?(Rails) && Rails.respond_to?(:root)
    result[:rails_root] = Rails.root
  end
  result
end
separation_environment_filter(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 71
def separation_environment_filter(request)
  result = {}
  FILTERED_ENV_LIST.each do |key|
    result[key] = request.filtered_env[key]
  end
  result
end
session_filter(request) click to toggle source
# File lib/zgcp_toolkit/formatter/request.rb, line 79
def session_filter(request)
  result = {}
  result[:session_id]   = request.ssl? ? "[FILTERED]" : request.session['session_id'] || request.env['rack.session.options'][:id].inspect
  result[:data_session] = request.session.to_hash
  result
end