Module: Onelinejson

Defined in:
lib/onelinejson.rb,
lib/onelinejson/version.rb

Defined Under Namespace

Modules: AppControllerMethods Classes: Railtie

Constant Summary collapse

REJECTED_HEADERS =
[
  /^HTTP_CACHE_.+/,
  /^HTTP_CONNECTION$/,
  /^HTTP_VERSION$/,
  /^HTTP_PRAGMA$/,
  /^HTTP_ACCEPT_LANGUAGE$/,
  /^HTTP_REFERER$/,
  /^HTTP_COOKIE$/,
  /^HTTP_AUTHORIZATION$/,
  /^HTTP_X_ACCESS_TOKEN$/,
  /.*HIDDEN.*/,
]
REJECTED_PARAMS =
[
  "password",
  "password_confirmation"
]
ELIP =
"\xe2\x80\xa6"
LOG_MAX_LENGTH =
16384
ENTRY_MAX_LENGTH =
128
BEFORE_HOOK =
lambda do |data, payload|
  request = data.select{ |k,_|
    [:method, :path, :format].include?(k)
  }.merge(payload.fetch(:request, {}))
  response = data.select{ |k,_|
    [:status, :duration, :view, :view_runtime].include?(k)
  }
  Onelinejson.enforce_max_json_length(
    {
      debug_info: payload[:debug_info] || {},
      request: request,
      response: response,
    })
end
VERSION =
"0.1.6"

Class Method Summary collapse

Class Method Details

.enforce_max_json_length(hash) ⇒ Object



47
48
49
50
51
52
53
54
55
56
# File 'lib/onelinejson.rb', line 47

def self.enforce_max_json_length(hash)
  return hash if JSON.dump(hash).size <= LOG_MAX_LENGTH

  deleted = hash[:request].delete(:params) || hash[:request].delete(:headers)
  if deleted
    enforce_max_json_length(hash)
  else
    hash
  end
end