Module: Bugsnag::Helpers

Defined in:
lib/bugsnag/helpers.rb

Constant Summary collapse

MAX_STRING_LENGTH =
3072
MAX_PAYLOAD_LENGTH =
128000
MAX_ARRAY_LENGTH =
40
RAW_DATA_TYPES =
[Numeric, TrueClass, FalseClass]

Class Method Summary collapse

Class Method Details

.flatten_meta_data(overrides) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/bugsnag/helpers.rb', line 25

def self.(overrides)
  return nil unless overrides

   = overrides.delete(:meta_data)
  if .is_a?(Hash)
    overrides.merge()
  else
    overrides
  end
end

.is_json_raw_type?(value) ⇒ Boolean

Check if a value is a raw type which should not be trimmed, truncated or converted to a string

Returns:

  • (Boolean)


38
39
40
# File 'lib/bugsnag/helpers.rb', line 38

def self.is_json_raw_type?(value)
  RAW_DATA_TYPES.detect {|klass| value.is_a?(klass)} != nil
end

.trim_if_needed(value) ⇒ Object

Trim the size of value if the serialized JSON value is longer than is accepted by Bugsnag



15
16
17
18
19
20
21
22
23
# File 'lib/bugsnag/helpers.rb', line 15

def self.trim_if_needed(value)
  sanitized_value = Bugsnag::Cleaner.clean_object_encoding(value)
  return sanitized_value unless payload_too_long?(sanitized_value)
  reduced_value = trim_strings_in_value(sanitized_value)
  return reduced_value unless payload_too_long?(reduced_value)
  reduced_value = truncate_arrays_in_value(reduced_value)
  return reduced_value unless payload_too_long?(reduced_value)
  (reduced_value)
end