dohutil 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/doh/core_ext/bigdecimal.rb +9 -6
- data/test/core_ext/bigdecimal.dt.rb +3 -1
- metadata +2 -2
@@ -2,9 +2,7 @@ require 'bigdecimal'
|
|
2
2
|
require 'bigdecimal/util'
|
3
3
|
|
4
4
|
class Integer
|
5
|
-
# to_d is already defined in 1.9.3
|
6
5
|
unless method_defined?(:to_d)
|
7
|
-
puts "defining Integer.to_d"
|
8
6
|
def to_d
|
9
7
|
to_s.to_d
|
10
8
|
end
|
@@ -12,9 +10,7 @@ class Integer
|
|
12
10
|
end
|
13
11
|
|
14
12
|
class BigDecimal
|
15
|
-
# to_d is already defined in 1.9.3
|
16
13
|
unless method_defined?(:to_d)
|
17
|
-
puts "defining BigDecimal.to_d"
|
18
14
|
def to_d
|
19
15
|
self
|
20
16
|
end
|
@@ -26,8 +22,15 @@ class BigDecimal
|
|
26
22
|
end
|
27
23
|
|
28
24
|
def to_dig(digits_after_decimal = 2)
|
29
|
-
raise ArgumentError.new("digits_after_decimal must be
|
30
|
-
|
25
|
+
raise ArgumentError.new("digits_after_decimal must be >= 0") unless digits_after_decimal >= 0
|
26
|
+
if nan? || infinite?
|
27
|
+
return '0' if digits_after_decimal == 0
|
28
|
+
return '0.' + ('0' * digits_after_decimal)
|
29
|
+
end
|
30
|
+
|
31
|
+
if digits_after_decimal == 0
|
32
|
+
return to_i.to_s
|
33
|
+
end
|
31
34
|
|
32
35
|
retval = truncate(digits_after_decimal).to_s('F')
|
33
36
|
digits_needed = retval.index('.') + digits_after_decimal + 1 - retval.size
|
@@ -13,10 +13,12 @@ class Test_core_ext_bigdecimal < DohTest::TestGroup
|
|
13
13
|
|
14
14
|
def test_to_dig_errors
|
15
15
|
assert_raises(ArgumentError) { BigDecimal('1').to_dig(-1) }
|
16
|
-
assert_raises(ArgumentError) { BigDecimal('1').to_dig(0) }
|
17
16
|
assert_equal('0.00', BigDecimal('NaN').to_dig)
|
18
17
|
assert_equal('0.00', BigDecimal('Infinity').to_dig)
|
19
18
|
assert_equal('0.00', BigDecimal('blah').to_dig)
|
19
|
+
assert_equal('0', BigDecimal('NaN').to_dig(0))
|
20
|
+
assert_equal('1', BigDecimal('1').to_dig(0))
|
21
|
+
assert_equal('0', BigDecimal('blah').to_dig(0))
|
20
22
|
end
|
21
23
|
|
22
24
|
def test_to_dig_doesnt_modify
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dohutil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-04-
|
13
|
+
date: 2013-04-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: dohroot
|