Module: Sentry::Rails::Serializer

Defined in:
lib/sentry/rails/serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(value) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/sentry/rails/serializer.rb', line 6

def self.serialize(value)
  case value
  when Range
    serialize_range(value)
  when Hash
    value.transform_values { |item| serialize(item) }
  when Array, Enumerable
    value.map { |item| serialize(item) }
  when ->(item) { item.respond_to?(:to_global_id) }
    serialize_global_id(value)
  else
    value
  end
end

.serialize_global_id(value) ⇒ Object



21
22
23
24
25
# File 'lib/sentry/rails/serializer.rb', line 21

def self.serialize_global_id(value)
  value.to_global_id.to_s
rescue StandardError
  value
end

.serialize_range(range) ⇒ Object



27
28
29
30
31
32
# File 'lib/sentry/rails/serializer.rb', line 27

def self.serialize_range(range)
  return range.to_s if range.begin.nil? || range.end.nil?
  return range.to_s if range.begin.is_a?(::ActiveSupport::TimeWithZone)

  range.map { |item| serialize(item) }
end