ruby-changes:17356
From: mrkn <ko1@a...>
Date: Wed, 29 Sep 2010 13:32:27 +0900 (JST)
Subject: [ruby-changes:17356] Ruby:r29361 (trunk): * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode):
mrkn 2010-09-29 13:32:20 +0900 (Wed, 29 Sep 2010) New Revision: 29361 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29361 Log: * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode): return the result of a block. * test/bigdecimal/test_bigdecimal.rb (test_save_rounding_mode): add a test for the above change. * test/bigdecimal/test_bigdecimal.rb (test_save_exception_mode): add a test for the return value of BigDecimal.save_exception_mode. Modified files: trunk/ChangeLog trunk/ext/bigdecimal/bigdecimal.c trunk/test/bigdecimal/test_bigdecimal.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 29360) +++ ChangeLog (revision 29361) @@ -1,3 +1,14 @@ +Wed Sep 29 13:26:30 2010 Kenta Murata <mrkn@m...> + + * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode): + return the result of a block. + + * test/bigdecimal/test_bigdecimal.rb (test_save_rounding_mode): + add a test for the above change. + + * test/bigdecimal/test_bigdecimal.rb (test_save_exception_mode): + add a test for the return value of BigDecimal.save_exception_mode. + Wed Sep 29 12:45:30 2010 NAKAMURA Usaku <usa@r...> * ext/bigdecimal/bigdecimal.c (BigDecimal_div2, BigDecimal_add2, Index: ext/bigdecimal/bigdecimal.c =================================================================== --- ext/bigdecimal/bigdecimal.c (revision 29360) +++ ext/bigdecimal/bigdecimal.c (revision 29361) @@ -1864,7 +1864,7 @@ VALUE ret = rb_protect(rb_yield, Qnil, &state); VpSetRoundMode(round_mode); if (state) rb_jump_tag(state); - return Qnil; + return ret; } /* call-seq: Index: test/bigdecimal/test_bigdecimal.rb =================================================================== --- test/bigdecimal/test_bigdecimal.rb (revision 29360) +++ test/bigdecimal/test_bigdecimal.rb (revision 29361) @@ -112,6 +112,8 @@ BigDecimal.mode(BigDecimal::ROUND_MODE, BigDecimal::ROUND_HALF_EVEN) end assert_equal(BigDecimal::ROUND_HALF_EVEN, BigDecimal.mode(BigDecimal::ROUND_MODE)) + + assert_equal(42, BigDecimal.save_exception_mode { 42 }) end def test_save_rounding_mode @@ -120,6 +122,8 @@ BigDecimal.mode(BigDecimal::ROUND_MODE, BigDecimal::ROUND_HALF_EVEN) end assert_equal(BigDecimal::ROUND_FLOOR, BigDecimal.mode(BigDecimal::ROUND_MODE)) + + assert_equal(42, BigDecimal.save_rounding_mode { 42 }) end def test_save_limit -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/