ruby-changes:25355
From: mrkn <ko1@a...>
Date: Thu, 1 Nov 2012 22:04:45 +0900 (JST)
Subject: [ruby-changes:25355] mrkn:r37407 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_new),
mrkn 2012-11-01 22:04:04 +0900 (Thu, 01 Nov 2012) New Revision: 37407 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37407 Log: * ext/bigdecimal/bigdecimal.c (BigDecimal_new), test/bigdecimal/test_bigdecimal.rb: Fix exception message of BigDecimal constructor with a Float. Modified files: trunk/ChangeLog trunk/ext/bigdecimal/bigdecimal.c trunk/test/bigdecimal/test_bigdecimal.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 37406) +++ ChangeLog (revision 37407) @@ -1,3 +1,9 @@ +Thu Nov 1 21:57:00 2012 Kenta Murata <mrkn@m...> + + * ext/bigdecimal/bigdecimal.c (BigDecimal_new), + test/bigdecimal/test_bigdecimal.rb: + Fix exception message of BigDecimal constructor with a Float. + Thu Nov 1 21:52:20 2012 Kenta Murata <mrkn@m...> * ext/bigdecimal/bigdecimal.c (BigDecimal_add), Index: ext/bigdecimal/bigdecimal.c =================================================================== --- ext/bigdecimal/bigdecimal.c (revision 37406) +++ ext/bigdecimal/bigdecimal.c (revision 37407) @@ -2354,7 +2354,9 @@ /* fall through */ case T_RATIONAL: if (NIL_P(nFig)) { - rb_raise(rb_eArgError, "can't omit precision for a Rational."); + rb_raise(rb_eArgError, + "can't omit precision for a %s.", + rb_class2name(CLASS_OF(iniValue))); } return GetVpValueWithPrec(iniValue, mf, 1); Index: test/bigdecimal/test_bigdecimal.rb =================================================================== --- test/bigdecimal/test_bigdecimal.rb (revision 37406) +++ test/bigdecimal/test_bigdecimal.rb (revision 37407) @@ -52,6 +52,18 @@ assert_equal(1, BigDecimal("1")) assert_equal(1, BigDecimal("1", 1)) assert_raise(ArgumentError) { BigDecimal("1", -1) } + assert_raise(ArgumentError) { BigDecimal(4.2) } + begin + BigDecimal(4.2) + rescue ArgumentError => error + assert_match(/Float/, error.message) + end + assert_raise(ArgumentError) { BigDecimal(42.quo(7)) } + begin + BigDecimal(42.quo(7)) + rescue ArgumentError => error + assert_match(/Rational/, error.message) + end end def test_global_new_with_integer -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/