[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]