Feature #12602


Add NilClass#to_d

Added by Domon (Chun-wei Kuo) almost 6 years ago. Updated about 4 years ago.

Target version:


bigdecimal/util adds a #to_d method to many native classes, as a shortcut to converting them to BigDecimal, e.g.

require 'bigdecimal'
require 'bigdecimal/util'

1.23.to_d  # => #<BigDecimal:7fa4f11f0958,'0.123E1',18(36)>

However, #to_d is not added to NilClass:

nil.to_d  # => NoMethodError: undefined method `to_d' for nil:NilClass

While to_i, to_f, etc. works on nil:

nil.to_i  # => 0
nil.to_f  # => 0.0

I think it is reasonable to make to_d behave more like its counterparts.

Therefore, I tried implementing the NilClass#to_d method in bigdecimal/util with a test.
The method always returns 0 in BigDecimal.

Please see attached patch.

Thanks! :)


add-nil-to-d.patch (1.34 KB) add-nil-to-d.patch Add NilClass#to_d which always returns 0 in BigDecimal Domon (Chun-wei Kuo), 02/22/2017 11:21 AM

Updated by mrkn (Kenta Murata) almost 6 years ago

  • Assignee set to mrkn (Kenta Murata)
  • Status changed from Open to Assigned

Updated by Domon (Chun-wei Kuo) over 5 years ago

Hi, are there any updates or concerns about this feature?

Actions #3

Updated by Domon (Chun-wei Kuo) over 5 years ago

  • File deleted (add-nil-to-d.patch)

Updated by wizardofogz (Andy Ogzewalla) over 4 years ago

I think this is a good addition to make behavior of numeric types consistent. Is there a reason this was not done initially?

Updated by isayajin (Isay Sosa) about 4 years ago

Any updates about this feature? I ended up adding the #to_d by monkey patching NilClass, but I would like this feature to get merged.

Updated by mrkn (Kenta Murata) about 4 years ago

  • Status changed from Assigned to Closed

I've released the new version 1.3.5, that includes nil.to_d.
Please use it.


Also available in: Atom PDF