bigdecimal 3.1.3 → 3.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 709b449a675da27c73c3f89a806b30042260e11ff5850a4f67ad2742c5b893db
4
- data.tar.gz: e1e356c06c6af164010886bbbc58f89217921e73d8b5267587c87c9b4566ca75
3
+ metadata.gz: 109c70397447eabf22f0e869db4b2c0c902c7d0baaf28865aebfc534e3c14b9f
4
+ data.tar.gz: 43df8b8d27be2b5cbf29c7396c07eabbca3119067b525f94155f2901f2c058d4
5
5
  SHA512:
6
- metadata.gz: a745b78d3b9fe6f4e5a904dbe0e92fe8d30ff82e741835186ef528a92e2532d7cf10a3da6722ecc8b46b16c1a4f4bccb22bd18ccf5e5fedee1bae1bf62d17961
7
- data.tar.gz: 57e4c571d5b1639206842d0ecbfd67ff2b296c9639fdacd5b655b4bf98714e211b737061e95f79f21c4e735afe7e0550079fb6bac3b9f9eefb1ba2c55e48ffbe
6
+ metadata.gz: 8b0b82714e555c1ca30e761296f497d2cf914a50d19d553cca37b51af6b85914bbc86772b5bb8d70388020dbff9abc3e0501b3d6bb95ba3d68c30a91d5b197fa
7
+ data.tar.gz: a4bc1e9d1918fb84f5405c3dc2fce2358a074f0f729084936ec7ee2010dffeeee889fb0054d932f35175c48577888fc74bba7afde492f628d8beef5deeeadc0d
data/bigdecimal.gemspec CHANGED
@@ -1,28 +1,29 @@
1
1
  # coding: utf-8
2
2
 
3
+ name = File.basename(__FILE__, '.*')
4
+ source_version = ["", "ext/#{name}/"].find do |dir|
5
+ begin
6
+ break File.foreach(File.join(__dir__, "#{dir}#{name}.c")) {|line|
7
+ break $1.sub("-", ".") if /^#define\s+#{name.upcase}_VERSION\s+"(.+)"/o =~ line
8
+ }
9
+ rescue Errno::ENOENT
10
+ end
11
+ end or raise "can't find #{name.upcase}_VERSION"
12
+
3
13
  Gem::Specification.new do |s|
4
- s.name = "bigdecimal"
5
- s.version = "3.1.3"
14
+ s.name = name
15
+ s.version = source_version
6
16
  s.authors = ["Kenta Murata", "Zachary Scott", "Shigeo Kobayashi"]
7
17
  s.email = ["mrkn@mrkn.jp"]
8
18
 
9
19
  s.summary = "Arbitrary-precision decimal floating-point number library."
10
20
  s.description = "This library provides arbitrary-precision decimal floating-point number class."
11
21
  s.homepage = "https://github.com/ruby/bigdecimal"
12
- s.licenses = ["Ruby", "bsd-2-clause"]
22
+ s.licenses = ["Ruby", "BSD-2-Clause"]
13
23
 
14
24
  s.require_paths = %w[lib]
15
- s.extensions = %w[ext/bigdecimal/extconf.rb]
16
25
  s.files = %w[
17
26
  bigdecimal.gemspec
18
- ext/bigdecimal/bigdecimal.c
19
- ext/bigdecimal/bigdecimal.h
20
- ext/bigdecimal/bits.h
21
- ext/bigdecimal/feature.h
22
- ext/bigdecimal/missing.c
23
- ext/bigdecimal/missing.h
24
- ext/bigdecimal/missing/dtoa.c
25
- ext/bigdecimal/static_assert.h
26
27
  lib/bigdecimal.rb
27
28
  lib/bigdecimal/jacobian.rb
28
29
  lib/bigdecimal/ludcmp.rb
@@ -33,6 +34,21 @@ Gem::Specification.new do |s|
33
34
  sample/nlsolve.rb
34
35
  sample/pi.rb
35
36
  ]
37
+ if Gem::Platform === s.platform and s.platform =~ 'java' or RUBY_ENGINE == 'jruby'
38
+ s.platform = 'java'
39
+ else
40
+ s.extensions = %w[ext/bigdecimal/extconf.rb]
41
+ s.files += %w[
42
+ ext/bigdecimal/bigdecimal.c
43
+ ext/bigdecimal/bigdecimal.h
44
+ ext/bigdecimal/bits.h
45
+ ext/bigdecimal/feature.h
46
+ ext/bigdecimal/missing.c
47
+ ext/bigdecimal/missing.h
48
+ ext/bigdecimal/missing/dtoa.c
49
+ ext/bigdecimal/static_assert.h
50
+ ]
51
+ end
36
52
 
37
53
  s.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
38
54
  end
@@ -31,6 +31,8 @@
31
31
  #include "bits.h"
32
32
  #include "static_assert.h"
33
33
 
34
+ #define BIGDECIMAL_VERSION "3.1.5"
35
+
34
36
  /* #define ENABLE_NUMERIC_STRING */
35
37
 
36
38
  #define SIGNED_VALUE_MAX INTPTR_MAX
@@ -313,7 +315,7 @@ static const rb_data_type_t BigDecimal_data_type = {
313
315
  "BigDecimal",
314
316
  { 0, BigDecimal_delete, BigDecimal_memsize, },
315
317
  #ifdef RUBY_TYPED_FREE_IMMEDIATELY
316
- 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE
318
+ 0, 0, RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_FROZEN_SHAREABLE | RUBY_TYPED_WB_PROTECTED
317
319
  #endif
318
320
  };
319
321
 
@@ -655,7 +657,7 @@ BigDecimal_precision(VALUE self)
655
657
  * Returns the number of decimal digits following the decimal digits in +self+.
656
658
  *
657
659
  * BigDecimal("0").scale # => 0
658
- * BigDecimal("1").scale # => 1
660
+ * BigDecimal("1").scale # => 0
659
661
  * BigDecimal("1.1").scale # => 1
660
662
  * BigDecimal("3.1415").scale # => 4
661
663
  * BigDecimal("-1e20").precision # => 0
@@ -2082,6 +2084,13 @@ BigDecimal_divremain(VALUE self, VALUE r, Real **dv, Real **rv)
2082
2084
  if (!b) return DoSomeOne(self, r, rb_intern("remainder"));
2083
2085
  SAVE(b);
2084
2086
 
2087
+ if (VpIsPosInf(b) || VpIsNegInf(b)) {
2088
+ GUARD_OBJ(*dv, NewZeroWrapLimited(1, 1));
2089
+ VpSetZero(*dv, 1);
2090
+ *rv = a;
2091
+ return Qnil;
2092
+ }
2093
+
2085
2094
  mx = (a->MaxPrec + b->MaxPrec) *VpBaseFig();
2086
2095
  GUARD_OBJ(c, NewZeroWrapLimited(1, mx));
2087
2096
  GUARD_OBJ(res, NewZeroWrapNolimit(1, (mx+1) * 2 + (VpBaseFig() + 1)));
@@ -2680,7 +2689,7 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)
2680
2689
  * A space at the start of s returns positive values with a leading space.
2681
2690
  *
2682
2691
  * If s contains a number, a space is inserted after each group of that many
2683
- * fractional digits.
2692
+ * digits, starting from '.' and counting outwards.
2684
2693
  *
2685
2694
  * If s ends with an 'E', engineering notation (0.xxxxEnn) is used.
2686
2695
  *
@@ -2688,14 +2697,14 @@ BigDecimal_ceil(int argc, VALUE *argv, VALUE self)
2688
2697
  *
2689
2698
  * Examples:
2690
2699
  *
2691
- * BigDecimal('-123.45678901234567890').to_s('5F')
2692
- * #=> '-123.45678 90123 45678 9'
2700
+ * BigDecimal('-1234567890123.45678901234567890').to_s('5F')
2701
+ * #=> '-123 45678 90123.45678 90123 45678 9'
2693
2702
  *
2694
- * BigDecimal('123.45678901234567890').to_s('+8F')
2695
- * #=> '+123.45678901 23456789'
2703
+ * BigDecimal('1234567890123.45678901234567890').to_s('+8F')
2704
+ * #=> '+12345 67890123.45678901 23456789'
2696
2705
  *
2697
- * BigDecimal('123.45678901234567890').to_s(' F')
2698
- * #=> ' 123.4567890123456789'
2706
+ * BigDecimal('1234567890123.45678901234567890').to_s(' F')
2707
+ * #=> ' 1234567890123.4567890123456789'
2699
2708
  */
2700
2709
  static VALUE
2701
2710
  BigDecimal_to_s(int argc, VALUE *argv, VALUE self)
@@ -3713,7 +3722,7 @@ rb_convert_to_BigDecimal(VALUE val, size_t digs, int raise_exception)
3713
3722
  * - Other type:
3714
3723
  *
3715
3724
  * - Raises an exception if keyword argument +exception+ is +true+.
3716
- * - Returns +nil+ if keyword argument +exception+ is +true+.
3725
+ * - Returns +nil+ if keyword argument +exception+ is +false+.
3717
3726
  *
3718
3727
  * Raises an exception if +value+ evaluates to a Float
3719
3728
  * and +digits+ is larger than Float::DIG + 1.
@@ -4133,11 +4142,11 @@ get_vp_value:
4133
4142
  }
4134
4143
  x = VpCheckGetValue(vx);
4135
4144
 
4136
- RB_GC_GUARD(one) = VpCheckGetValue(NewOneWrapLimited(1, 1));
4137
- RB_GC_GUARD(two) = VpCheckGetValue(VpCreateRbObject(1, "2", true));
4145
+ one = VpCheckGetValue(NewOneWrapLimited(1, 1));
4146
+ two = VpCheckGetValue(VpCreateRbObject(1, "2", true));
4138
4147
 
4139
4148
  n = prec + BIGDECIMAL_DOUBLE_FIGURES;
4140
- RB_GC_GUARD(vn) = SSIZET2NUM(n);
4149
+ vn = SSIZET2NUM(n);
4141
4150
  expo = VpExponent10(vx);
4142
4151
  if (expo < 0 || expo >= 3) {
4143
4152
  char buf[DECIMAL_SIZE_OF_BITS(SIZEOF_VALUE * CHAR_BIT) + 4];
@@ -4149,9 +4158,9 @@ get_vp_value:
4149
4158
  }
4150
4159
  w = BigDecimal_sub(x, one);
4151
4160
  x = BigDecimal_div2(w, BigDecimal_add(x, one), vn);
4152
- RB_GC_GUARD(x2) = BigDecimal_mult2(x, x, vn);
4153
- RB_GC_GUARD(y) = x;
4154
- RB_GC_GUARD(d) = y;
4161
+ x2 = BigDecimal_mult2(x, x, vn);
4162
+ y = x;
4163
+ d = y;
4155
4164
  i = 1;
4156
4165
  while (!VpIsZero((Real*)DATA_PTR(d))) {
4157
4166
  SIGNED_VALUE const ey = VpExponent10(DATA_PTR(y));
@@ -4179,6 +4188,13 @@ get_vp_value:
4179
4188
  y = BigDecimal_add(y, dy);
4180
4189
  }
4181
4190
 
4191
+ RB_GC_GUARD(one);
4192
+ RB_GC_GUARD(two);
4193
+ RB_GC_GUARD(vn);
4194
+ RB_GC_GUARD(x2);
4195
+ RB_GC_GUARD(y);
4196
+ RB_GC_GUARD(d);
4197
+
4182
4198
  return y;
4183
4199
  }
4184
4200
 
@@ -4347,7 +4363,20 @@ BigDecimal_negative_zero(void)
4347
4363
  * (2/3r).to_d(3) # => 0.667e0
4348
4364
  * "0.5".to_d # => 0.5e0
4349
4365
  *
4350
- * == License
4366
+ * == Methods for Working with \JSON
4367
+ *
4368
+ * - {::json_create}[https://docs.ruby-lang.org/en/master/BigDecimal.html#method-c-json_create]:
4369
+ * Returns a new \BigDecimal object constructed from the given object.
4370
+ * - {#as_json}[https://docs.ruby-lang.org/en/master/BigDecimal.html#method-i-as_json]:
4371
+ * Returns a 2-element hash representing +self+.
4372
+ * - {#to_json}[https://docs.ruby-lang.org/en/master/BigDecimal.html#method-i-to_json]:
4373
+ * Returns a \JSON string representing +self+.
4374
+ *
4375
+ * These methods are provided by the {JSON gem}[https://github.com/flori/json]. To make these methods available:
4376
+ *
4377
+ * require 'json/add/bigdecimal'
4378
+ *
4379
+ * * == License
4351
4380
  *
4352
4381
  * Copyright (C) 2002 by Shigeo Kobayashi <shigeo@tinyforest.gr.jp>.
4353
4382
  *
@@ -4395,13 +4424,10 @@ Init_bigdecimal(void)
4395
4424
 
4396
4425
  /* Constants definition */
4397
4426
 
4398
- #ifndef RUBY_BIGDECIMAL_VERSION
4399
- # error RUBY_BIGDECIMAL_VERSION is not defined
4400
- #endif
4401
4427
  /*
4402
4428
  * The version of bigdecimal library
4403
4429
  */
4404
- rb_define_const(rb_cBigDecimal, "VERSION", rb_str_new2(RUBY_BIGDECIMAL_VERSION));
4430
+ rb_define_const(rb_cBigDecimal, "VERSION", rb_str_new2(BIGDECIMAL_VERSION));
4405
4431
 
4406
4432
  /*
4407
4433
  * Base value used in internal calculations. On a 32 bit system, BASE
@@ -6453,7 +6479,7 @@ VPrint(FILE *fp, const char *cntl_chr, Real *a)
6453
6479
  }
6454
6480
  }
6455
6481
  nc += fprintf(fp, "E%"PRIdSIZE, VpExponent10(a));
6456
- nc += fprintf(fp, " (%"PRIdVALUE", %lu, %lu)", a->exponent, a->Prec, a->MaxPrec);
6482
+ nc += fprintf(fp, " (%"PRIdVALUE", %"PRIuSIZE", %"PRIuSIZE")", a->exponent, a->Prec, a->MaxPrec);
6457
6483
  }
6458
6484
  else {
6459
6485
  nc += fprintf(fp, "0.0");
@@ -6693,95 +6719,90 @@ VpToFString(Real *a, char *buf, size_t buflen, size_t fFmt, int fPlus)
6693
6719
  /* fPlus = 0: default, 1: set ' ' before digits, 2: set '+' before digits. */
6694
6720
  {
6695
6721
  size_t i, n;
6696
- DECDIG m, e, nn;
6722
+ DECDIG m, e;
6697
6723
  char *p = buf;
6698
- size_t plen = buflen;
6724
+ size_t plen = buflen, delim = fFmt;
6699
6725
  ssize_t ex;
6700
6726
 
6701
6727
  if (VpToSpecialString(a, buf, buflen, fPlus)) return;
6702
6728
 
6703
- #define ADVANCE(n) do { \
6704
- if (plen < n) goto overflow; \
6705
- p += n; \
6706
- plen -= n; \
6729
+ #define APPEND(c, group) do { \
6730
+ if (plen < 1) goto overflow; \
6731
+ if (group && delim == 0) { \
6732
+ *p = ' '; \
6733
+ p += 1; \
6734
+ plen -= 1; \
6735
+ } \
6736
+ if (plen < 1) goto overflow; \
6737
+ *p = c; \
6738
+ p += 1; \
6739
+ plen -= 1; \
6740
+ if (group) delim = (delim + 1) % fFmt; \
6707
6741
  } while (0)
6708
6742
 
6709
6743
 
6710
6744
  if (BIGDECIMAL_NEGATIVE_P(a)) {
6711
- *p = '-';
6712
- ADVANCE(1);
6745
+ APPEND('-', false);
6713
6746
  }
6714
6747
  else if (fPlus == 1) {
6715
- *p = ' ';
6716
- ADVANCE(1);
6748
+ APPEND(' ', false);
6717
6749
  }
6718
6750
  else if (fPlus == 2) {
6719
- *p = '+';
6720
- ADVANCE(1);
6751
+ APPEND('+', false);
6721
6752
  }
6722
6753
 
6723
6754
  n = a->Prec;
6724
6755
  ex = a->exponent;
6725
6756
  if (ex <= 0) {
6726
- *p = '0'; ADVANCE(1);
6727
- *p = '.'; ADVANCE(1);
6728
- while (ex < 0) {
6729
- for (i=0; i < BASE_FIG; ++i) {
6730
- *p = '0'; ADVANCE(1);
6731
- }
6732
- ++ex;
6757
+ APPEND('0', false);
6758
+ APPEND('.', false);
6759
+ }
6760
+ while (ex < 0) {
6761
+ for (i=0; i < BASE_FIG; ++i) {
6762
+ APPEND('0', fFmt > 0);
6733
6763
  }
6734
- ex = -1;
6764
+ ++ex;
6735
6765
  }
6736
6766
 
6737
6767
  for (i = 0; i < n; ++i) {
6738
- --ex;
6739
- if (i == 0 && ex >= 0) {
6740
- size_t n = snprintf(p, plen, "%lu", (unsigned long)a->frac[i]);
6741
- if (n > plen) goto overflow;
6742
- ADVANCE(n);
6743
- }
6744
- else {
6745
- m = BASE1;
6746
- e = a->frac[i];
6747
- while (m) {
6748
- nn = e / m;
6749
- *p = (char)(nn + '0');
6750
- ADVANCE(1);
6751
- e = e - nn * m;
6768
+ m = BASE1;
6769
+ e = a->frac[i];
6770
+ if (i == 0 && ex > 0) {
6771
+ for (delim = 0; e / m == 0; delim++) {
6752
6772
  m /= 10;
6753
6773
  }
6774
+ if (fFmt > 0) {
6775
+ delim = 2*fFmt - (ex * BASE_FIG - delim) % fFmt;
6776
+ }
6777
+ }
6778
+ while (m && (e || (i < n - 1) || ex > 0)) {
6779
+ APPEND((char)(e / m + '0'), fFmt > 0);
6780
+ e %= m;
6781
+ m /= 10;
6754
6782
  }
6755
- if (ex == 0) {
6756
- *p = '.';
6757
- ADVANCE(1);
6783
+ if (--ex == 0) {
6784
+ APPEND('.', false);
6785
+ delim = fFmt;
6758
6786
  }
6759
6787
  }
6760
- while (--ex>=0) {
6761
- m = BASE;
6762
- while (m /= 10) {
6763
- *p = '0';
6764
- ADVANCE(1);
6788
+
6789
+ while (ex > 0) {
6790
+ for (i=0; i < BASE_FIG; ++i) {
6791
+ APPEND('0', fFmt > 0);
6765
6792
  }
6766
- if (ex == 0) {
6767
- *p = '.';
6768
- ADVANCE(1);
6793
+ if (--ex == 0) {
6794
+ APPEND('.', false);
6769
6795
  }
6770
6796
  }
6771
6797
 
6772
6798
  *p = '\0';
6773
- while (p - 1 > buf && p[-1] == '0') {
6774
- *(--p) = '\0';
6775
- ++plen;
6776
- }
6777
6799
  if (p - 1 > buf && p[-1] == '.') {
6778
6800
  snprintf(p, plen, "0");
6779
6801
  }
6780
- if (fFmt) VpFormatSt(buf, fFmt);
6781
6802
 
6782
6803
  overflow:
6783
6804
  return;
6784
- #undef ADVANCE
6805
+ #undef APPEND
6785
6806
  }
6786
6807
 
6787
6808
  /*
@@ -7158,7 +7179,6 @@ VpSqrt(Real *y, Real *x)
7158
7179
  Real *r = NULL;
7159
7180
  size_t y_prec;
7160
7181
  SIGNED_VALUE n, e;
7161
- SIGNED_VALUE prec;
7162
7182
  ssize_t nr;
7163
7183
  double val;
7164
7184
 
@@ -7197,12 +7217,6 @@ VpSqrt(Real *y, Real *x)
7197
7217
  nr = 0;
7198
7218
  y_prec = y->MaxPrec;
7199
7219
 
7200
- prec = x->exponent - (ssize_t)y_prec;
7201
- if (x->exponent > 0)
7202
- ++prec;
7203
- else
7204
- --prec;
7205
-
7206
7220
  VpVtoD(&val, &e, x); /* val <- x */
7207
7221
  e /= (SIGNED_VALUE)BASE_FIG;
7208
7222
  n = e / 2;
@@ -1,18 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
  require 'mkmf'
3
3
 
4
- def check_bigdecimal_version(gemspec_path)
5
- message "checking RUBY_BIGDECIMAL_VERSION... "
6
- bigdecimal_version = File.read(gemspec_path).match(/^\s*s\.version\s+=\s+['"]([^'"]+)['"]\s*$/)[1]
7
-
8
- version_components = bigdecimal_version.split('.')
9
- bigdecimal_version = version_components[0, 3].join('.')
10
- bigdecimal_version << "-#{version_components[3]}" if version_components[3]
11
- $defs << %Q[-DRUBY_BIGDECIMAL_VERSION=\\"#{bigdecimal_version}\\"]
12
-
13
- message "#{bigdecimal_version}\n"
14
- end
15
-
16
4
  def have_builtin_func(name, check_expr, opt = "", &b)
17
5
  checking_for checking_message(name.funcall_style, nil, opt) do
18
6
  if try_compile(<<SRC, opt, &b)
@@ -27,18 +15,6 @@ SRC
27
15
  end
28
16
  end
29
17
 
30
- gemspec_name = gemspec_path = nil
31
- unless ['', '../../'].any? {|dir|
32
- gemspec_name = "#{dir}bigdecimal.gemspec"
33
- gemspec_path = File.expand_path("../#{gemspec_name}", __FILE__)
34
- File.file?(gemspec_path)
35
- }
36
- $stderr.puts "Unable to find bigdecimal.gemspec"
37
- abort
38
- end
39
-
40
- check_bigdecimal_version(gemspec_path)
41
-
42
18
  have_builtin_func("__builtin_clz", "__builtin_clz(0)")
43
19
  have_builtin_func("__builtin_clzl", "__builtin_clzl(0)")
44
20
  have_builtin_func("__builtin_clzll", "__builtin_clzll(0)")
@@ -82,6 +58,5 @@ else
82
58
  end
83
59
 
84
60
  create_makefile('bigdecimal') {|mf|
85
- mf << "GEMSPEC = #{gemspec_name}\n"
86
61
  mf << "BIGDECIMAL_RB = #{bigdecimal_rb}\n"
87
62
  }
@@ -18,7 +18,7 @@ class Integer < Numeric
18
18
  #
19
19
  # 42.to_d # => 0.42e2
20
20
  #
21
- # See also BigDecimal::new.
21
+ # See also Kernel.BigDecimal.
22
22
  #
23
23
  def to_d
24
24
  BigDecimal(self)
@@ -45,7 +45,7 @@ class Float < Numeric
45
45
  # 1.234.to_d # => 0.1234e1
46
46
  # 1.234.to_d(2) # => 0.12e1
47
47
  #
48
- # See also BigDecimal::new.
48
+ # See also Kernel.BigDecimal.
49
49
  #
50
50
  def to_d(precision=0)
51
51
  BigDecimal(self, precision)
@@ -67,7 +67,7 @@ class String
67
67
  # "123.45e1".to_d # => 0.12345e4
68
68
  # "45.67 degrees".to_d # => 0.4567e2
69
69
  #
70
- # See also BigDecimal::new.
70
+ # See also Kernel.BigDecimal.
71
71
  #
72
72
  def to_d
73
73
  BigDecimal.interpret_loosely(self)
@@ -127,7 +127,7 @@ class Rational < Numeric
127
127
  #
128
128
  # Rational(22, 7).to_d(3) # => 0.314e1
129
129
  #
130
- # See also BigDecimal::new.
130
+ # See also Kernel.BigDecimal.
131
131
  #
132
132
  def to_d(precision)
133
133
  BigDecimal(self, precision)
@@ -152,7 +152,7 @@ class Complex < Numeric
152
152
  # Complex(0.1234567, 0).to_d(4) # => 0.1235e0
153
153
  # Complex(Rational(22, 7), 0).to_d(3) # => 0.314e1
154
154
  #
155
- # See also BigDecimal::new.
155
+ # See also Kernel.BigDecimal.
156
156
  #
157
157
  def to_d(*args)
158
158
  BigDecimal(self) unless self.imag.zero? # to raise eerror
data/lib/bigdecimal.rb CHANGED
@@ -1 +1,5 @@
1
- require 'bigdecimal.so'
1
+ if RUBY_ENGINE == 'jruby'
2
+ JRuby::Util.load_ext("org.jruby.ext.bigdecimal.BigDecimalLibrary")
3
+ else
4
+ require 'bigdecimal.so'
5
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigdecimal
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Murata
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-12-05 00:00:00.000000000 Z
13
+ date: 2023-12-13 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: This library provides arbitrary-precision decimal floating-point number
16
16
  class.
@@ -43,7 +43,7 @@ files:
43
43
  homepage: https://github.com/ruby/bigdecimal
44
44
  licenses:
45
45
  - Ruby
46
- - bsd-2-clause
46
+ - BSD-2-Clause
47
47
  metadata: {}
48
48
  post_install_message:
49
49
  rdoc_options: []
@@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  requirements: []
63
- rubygems_version: 3.4.0.dev
63
+ rubygems_version: 3.3.9
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: Arbitrary-precision decimal floating-point number library.