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

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/

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