[ruby-core:73956] [Ruby trunk Bug#12105] JSON.pretty_generate throws a TypeError when there is a BigDecimal object as a value

From: zyrenthelichlord@...
Date: 2016-02-24 01:01:07 UTC
List: ruby-core #73956
Issue #12105 has been updated by Adnan Abdulally.


Not sure if this is an active support error or a ruby error. if i try to create the hash regularly, it works fine:

[19] pry(main)> hash.to_json
=> "{\"x\":50.0}"


----------------------------------------
Bug #12105: JSON.pretty_generate throws a TypeError when there is a BigDecimal object as a value
https://bugs.ruby-lang.org/issues/12105#change-57106

* Author: Adnan Abdulally
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.3.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
As the title states, JSON.pretty_generate throws a TypeError when there is a BigDecimal object as a value. This used to work in ruby 2.0 before upgrading in development. I havent tested to see how far back in ruby versions the error goes. 

Example console log of how to replicate:

`
[17] pry(main)> hash = {"x" => BigDecimal('50.0')}
=> {"x"=>#<BigDecimal:1befe50,'0.5E2',9(18)>}
[18] pry(main)> JSON.pretty_generate(hash)
TypeError: wrong argument type Float (expected String)
from /home/adnan/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.5/lib/active_support/core_ext/object/json.rb:34:in `to_json'
`



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next