summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/bigdecimal/lib/bigdecimal/util.rb8
-rw-r--r--test/bigdecimal/test_bigdecimal_util.rb10
3 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index fff25a47fb..ae33e360f9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Jul 27 00:30:00 2011 Kenta Murata <mrkn@mrkn.jp>
+
+ * ext/bigdecimal/lib/bigdecimal/util.rb (BigDecimal#to_d): added
+ for adapting other Numeric subclasses. [ruby-dev:44245]
+
+ * test/bigdecimal/test_bigdecimal_util.rb: test for the above change.
+
Wed Jul 27 00:27:00 2011 Kenta Murata <mrkn@mrkn.jp>
* bigdecimal/bigdecimal.c (VpDup) a new function for duplicating
diff --git a/ext/bigdecimal/lib/bigdecimal/util.rb b/ext/bigdecimal/lib/bigdecimal/util.rb
index 6e1697be88..6860cfd702 100644
--- a/ext/bigdecimal/lib/bigdecimal/util.rb
+++ b/ext/bigdecimal/lib/bigdecimal/util.rb
@@ -54,6 +54,14 @@ class BigDecimal < Numeric
i + "." + ("0"*(-z)) + f
end
end
+
+ # call-seq:
+ # a.to_d -> bigdecimal
+ #
+ # Returns self.
+ def to_d
+ self
+ end
end
class Rational < Numeric
diff --git a/test/bigdecimal/test_bigdecimal_util.rb b/test/bigdecimal/test_bigdecimal_util.rb
new file mode 100644
index 0000000000..c4483715ea
--- /dev/null
+++ b/test/bigdecimal/test_bigdecimal_util.rb
@@ -0,0 +1,10 @@
+require_relative "testbase"
+
+require 'bigdecimal/util'
+
+class TestBigDecimalUtil < Test::Unit::TestCase
+ def test_BigDecimal_to_d
+ x = BigDecimal(1)
+ assert_same(x, x.to_d)
+ end
+end