From 21b34009adfc7ebd2eb60e0bcd6eb7fd4417938e Mon Sep 17 00:00:00 2001 From: Vivek Date: Fri, 28 Nov 2025 03:40:09 +0530 Subject: [PATCH] Handle params or nested objects correctly --- sentry-ruby/lib/sentry/log_event.rb | 30 +++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/sentry-ruby/lib/sentry/log_event.rb b/sentry-ruby/lib/sentry/log_event.rb index cc26eb9f9..7cea5f0ff 100644 --- a/sentry-ruby/lib/sentry/log_event.rb +++ b/sentry-ruby/lib/sentry/log_event.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "json" + module Sentry # Event type that represents a log entry with its attributes # @@ -62,13 +64,6 @@ class LogEvent user_email ].map { |name| [name, :"serialize_#{name}"] }.to_h - VALUE_TYPES = Hash.new("string").merge!({ - TrueClass => "boolean", - FalseClass => "boolean", - Integer => "integer", - Float => "double" - }).freeze - TOKEN_REGEXP = /%\{(\w+)\}/ def initialize(configuration: Sentry.configuration, **options) @@ -178,11 +173,22 @@ def serialize_attributes end def attribute_hash(value) - { value: value, type: value_type(value) } - end - - def value_type(value) - VALUE_TYPES[value.class] + case value + when String + { value: value, type: "string" } + when TrueClass, FalseClass + { value: value, type: "boolean" } + when Integer + { value: value, type: "integer" } + when Float + { value: value, type: "double" } + else + begin + { value: JSON.generate(value), type: "string" } + rescue + { value: value, type: "string" } + end + end end def parameters