lib/project/coercer/numeric.rb in motion_coercible-0.2.0 vs lib/project/coercer/numeric.rb in motion_coercible-0.2.0.1
- old
+ new
@@ -1,5 +1,7 @@
+motion_require 'object'
+
module Coercible
class Coercer
# Base class for all numeric Coercion classes
class Numeric < Object
@@ -43,9 +45,23 @@
# @return [Float]
#
# @api public
def to_float(value)
value.to_f
+ end
+
+ # Coerce a BigDecimal instance from a numeric object
+ #
+ # @example
+ # coercer[Numeric].to_decimal(Rational(2, 2)) # => BigDecimal('1.0')
+ #
+ # @param [Numeric] value
+ #
+ # @return [BigDecimal]
+ #
+ # @api public
+ def to_decimal(value)
+ to_string(value).to_d
end
end # class Numeric
end # class Coercer