Method: Hanami::Utils::Kernel.BigDecimal
- Defined in:
- lib/hanami/utils/kernel.rb
permalink .BigDecimal(arg, precision = ::Float::DIG) ⇒ BigDecimal
Coerces the argument to be a BigDecimal.
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 |
# File 'lib/hanami/utils/kernel.rb', line 422 def self.BigDecimal(arg, precision = ::Float::DIG) case arg when NilClass # This is only needed by Ruby 2.6 raise TypeError.new "can't convert #{inspect_type_error(arg)}into BigDecimal" when Rational arg.to_d(precision) when Numeric BigDecimal(arg.to_s) when ->(a) { a.respond_to?(:to_d) } arg.to_d else ::Kernel.BigDecimal(arg, precision) end rescue NoMethodError raise TypeError.new "can't convert #{inspect_type_error(arg)}into BigDecimal" end |