diff --git a/lib/raven/okjson.rb b/lib/raven/okjson.rb index dc0fcef09..77e928d72 100644 --- a/lib/raven/okjson.rb +++ b/lib/raven/okjson.rb @@ -81,7 +81,7 @@ def valenc(x) when false then "false" when nil then "null" else - raise Error, "cannot encode #{x.class}: #{x.inspect}" + strenc((x.inspect rescue $!.to_s)) end end diff --git a/spec/raven/okjson_spec.rb b/spec/raven/okjson_spec.rb index 31d7155a0..e3b29cac3 100644 --- a/spec/raven/okjson_spec.rb +++ b/spec/raven/okjson_spec.rb @@ -20,6 +20,13 @@ end end + it 'encodes anything that responds to to_s' do + data = [ + (1..5) + ] + expect(Raven::OkJson.encode(data)).to eq '["1..5"]' + end + it 'parses zero-leading exponent numbers correctly' do expect(Raven::OkJson.decode("[123e090]")).to eq [123000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000] end