module NewRelic::CollectionHelper

Constants

DEFAULT_ARRAY_TRUNCATION_SIZE
DEFAULT_TRUNCATION_SIZE

Public Instance Methods

normalize_params(params) click to toggle source

Transform parameter hash into a hash whose values are strictly strings

# File lib/new_relic/collection_helper.rb, line 11
def normalize_params(params)
  case params
    when Hash
      # Optimize for empty hash since that is often what this is called with.
      return params if params.empty?

      new_params = {}
      params.each do |key, value|
        new_params[truncate(normalize_params(key), 64)] = normalize_params(value)
      end
      new_params
    when Symbol, FalseClass, TrueClass, nil
      params
    when Numeric
      truncate(params.to_s)
    when String
      truncate(params)
    when Array
      params.first(DEFAULT_ARRAY_TRUNCATION_SIZE).map { |item| normalize_params(item) }
    else
      truncate(flatten(params))
  end
end

Private Instance Methods

flatten(object) click to toggle source

Convert any kind of object to a short string.

# File lib/new_relic/collection_helper.rb, line 38
def flatten(object)
  case object
    when nil then ''
    when object.instance_of?(String) then object
    when String then String.new(object) # convert string subclasses to strings
    else +"#<#{object.class}>"
  end
end
truncate(string, len = DEFAULT_TRUNCATION_SIZE) click to toggle source
# File lib/new_relic/collection_helper.rb, line 47
def truncate(string, len = DEFAULT_TRUNCATION_SIZE)
  case string
  when Symbol then string
  when nil then EMPTY_STR
  when String
    real_string = flatten(string)
    if real_string.size > len
      real_string = real_string.slice(0...len)
      real_string << '...'
    end
    real_string
  else
    truncate(flatten(string), len)
  end
end