class ChiliLogger::Values::TypeUniformizer::User

responsible for uniformizing log's primitive types

Public Class Methods

new() click to toggle source
# File lib/helpers/values/type_uniformizer/user.rb, line 10
def initialize
  @default = ChiliLogger::Values::Default.new
end

Public Instance Methods

user(user) click to toggle source
# File lib/helpers/values/type_uniformizer/user.rb, line 14
def user(user)
  return {} unless user.is_a?(Hash)

  uniformized_user = {}
  valid_user_attrs.each do |attr_name|
    # don't enforce typing compliance of attrs that weren't explicitly set in user
    next unless user.key?(attr_name)

    user_attr = user[attr_name]
    user_attr = @default.invalid_string unless valid_user_attr_formats.include?(user_attr.class.name)
    user_attr ||= @default.undefined_string # if type == nil
    uniformized_user[attr_name] = user_attr.to_s
  end

  uniformized_user
end

Private Instance Methods

valid_user_attr_formats() click to toggle source
# File lib/helpers/values/type_uniformizer/user.rb, line 37
def valid_user_attr_formats
  %w[String NilClass Fixnum Bignum]
end
valid_user_attrs() click to toggle source
# File lib/helpers/values/type_uniformizer/user.rb, line 33
def valid_user_attrs
  %i[cognito_id email company_cognito_id company_name ghost_user_cognito_id]
end