class Raven::Processor::UTF8Conversion

Public Instance Methods

process(value) click to toggle source
# File lib/raven/processor/utf8conversion.rb, line 4
def process(value)
  if value.is_a? Array
    value.map { |v_| process v_ }
  elsif value.is_a? Hash
    value.merge(value) { |k, v_| process v_ }
  else
    clean_invalid_utf8_bytes(value)
  end
end

Private Instance Methods

clean_invalid_utf8_bytes(obj) click to toggle source
# File lib/raven/processor/utf8conversion.rb, line 16
def clean_invalid_utf8_bytes(obj)
  if obj.respond_to?(:to_utf8)
    obj.to_utf8
  elsif obj.respond_to?(:encoding)
    obj.encode('UTF-16', :invalid => :replace, :undef => :replace, :replace => '').encode('UTF-8')
  else
    obj
  end
end