ruby-changes:45524
From: mrkn <ko1@a...>
Date: Fri, 10 Feb 2017 22:24:04 +0900 (JST)
Subject: [ruby-changes:45524] mrkn:r57597 (trunk): bigdecimal: version 1.3.1
mrkn 2017-02-10 22:23:58 +0900 (Fri, 10 Feb 2017) New Revision: 57597 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=57597 Log: bigdecimal: version 1.3.1 Import bigdecimal version 1.3.1. The full commit log is here: https://github.com/ruby/bigdecimal/compare/v1.3.0...v1.3.1 Modified files: trunk/ext/bigdecimal/bigdecimal.c trunk/ext/bigdecimal/bigdecimal.gemspec trunk/ext/bigdecimal/extconf.rb trunk/ext/bigdecimal/lib/bigdecimal/util.rb trunk/test/bigdecimal/test_bigdecimal_util.rb Index: ext/bigdecimal/lib/bigdecimal/util.rb =================================================================== --- ext/bigdecimal/lib/bigdecimal/util.rb (revision 57596) +++ ext/bigdecimal/lib/bigdecimal/util.rb (revision 57597) @@ -1,7 +1,12 @@ https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/lib/bigdecimal/util.rb#L1 # frozen_string_literal: false -# BigDecimal extends the native Integer class to provide the #to_d method. # -# When you require the BigDecimal library in your application, this method will +# bigdecimal/util extends various native classes to provide the #to_d method, +# and provides BigDecimal#to_d and BigDecimal#to_digits. + + +# bigdecimal/util extends the native Integer class to provide the #to_d method. +# +# When you require 'bigdecimal/util' in your application, this method will # be available on Integer objects. class Integer < Numeric # call-seq: @@ -20,9 +25,9 @@ class Integer < Numeric https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/lib/bigdecimal/util.rb#L25 end end -# BigDecimal extends the native Float class to provide the #to_d method. +# bigdecimal/util extends the native Float class to provide the #to_d method. # -# When you require BigDecimal in your application, this method will be +# When you require 'bigdecimal/util' in your application, this method will be # available on Float objects. class Float < Numeric # call-seq: @@ -41,9 +46,9 @@ class Float < Numeric https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/lib/bigdecimal/util.rb#L46 end end -# BigDecimal extends the native String class to provide the #to_d method. +# bigdecimal/util extends the native String class to provide the #to_d method. # -# When you require BigDecimal in your application, this method will be +# When you require 'bigdecimal/util' in your application, this method will be # available on String objects. class String # call-seq: @@ -58,14 +63,18 @@ class String https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/lib/bigdecimal/util.rb#L63 # # => 0.5e0 # def to_d - BigDecimal(self) + begin + BigDecimal(self) + rescue ArgumentError + BigDecimal(0) + end end end -# BigDecimal extends the native Numeric class to provide the #to_digits and +# bigdecimal/util extends the BigDecimal class to provide the #to_digits and # #to_d methods. # -# When you require BigDecimal in your application, this method will be +# When you require 'bigdecimal/util' in your application, these methods will be # available on BigDecimal objects. class BigDecimal < Numeric # call-seq: @@ -99,9 +108,9 @@ class BigDecimal < Numeric https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/lib/bigdecimal/util.rb#L108 end end -# BigDecimal extends the native Rational class to provide the #to_d method. +# bigdecimal/util extends the native Rational class to provide the #to_d method. # -# When you require BigDecimal in your application, this method will be +# When you require 'bigdecimal/util' in your application, this method will be # available on Rational objects. class Rational < Numeric # call-seq: Index: ext/bigdecimal/extconf.rb =================================================================== --- ext/bigdecimal/extconf.rb (revision 57596) +++ ext/bigdecimal/extconf.rb (revision 57597) @@ -14,10 +14,6 @@ have_func("rb_rational_den", "ruby.h") https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/extconf.rb#L14 have_func("rb_array_const_ptr", "ruby.h") have_func("rb_sym2str", "ruby.h") -have_macro("FIX_CONST_VALUE_PTR", "ruby.h") -have_macro("RARRAY_CONST_PTR", "ruby.h") -have_macro("RARRAY_AREF", "ruby.h") - create_makefile('bigdecimal') # Add additional dependencies Index: ext/bigdecimal/bigdecimal.c =================================================================== --- ext/bigdecimal/bigdecimal.c (revision 57596) +++ ext/bigdecimal/bigdecimal.c (revision 57597) @@ -5920,17 +5920,12 @@ Exit: https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/bigdecimal.c#L5920 } /* - * - * nf: digit position for operation. - * - */ -VP_EXPORT int -VpMidRound(Real *y, unsigned short f, ssize_t nf) -/* * Round relatively from the decimal point. * f: rounding mode * nf: digit location to round from the decimal point. */ +VP_EXPORT int +VpMidRound(Real *y, unsigned short f, ssize_t nf) { /* fracf: any positive digit under rounding position? */ /* fracf_1further: any positive digits under one further than the rounding position? */ Index: ext/bigdecimal/bigdecimal.gemspec =================================================================== --- ext/bigdecimal/bigdecimal.gemspec (revision 57596) +++ ext/bigdecimal/bigdecimal.gemspec (revision 57597) @@ -1,5 +1,5 @@ https://github.com/ruby/ruby/blob/trunk/ext/bigdecimal/bigdecimal.gemspec#L1 # coding: utf-8 -_VERSION = '1.3.0' +_VERSION = '1.3.1' Gem::Specification.new do |s| s.name = "bigdecimal" Index: test/bigdecimal/test_bigdecimal_util.rb =================================================================== --- test/bigdecimal/test_bigdecimal_util.rb (revision 57596) +++ test/bigdecimal/test_bigdecimal_util.rb (revision 57597) @@ -48,4 +48,13 @@ class TestBigDecimalUtil < Test::Unit::T https://github.com/ruby/ruby/blob/trunk/test/bigdecimal/test_bigdecimal_util.rb#L48 def test_Rational_to_d_with_negative_precision assert_raise(ArgumentError) { 355.quo(113).to_d(-42) } end + + def test_String_to_d + assert_equal("2.5".to_d, BigDecimal.new('2.5')) + end + + def test_invalid_String_to_d + assert_equal("invalid".to_d, BigDecimal.new('0.0')) + end + end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/