This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 04a7b68 ARROW-4924: [Ruby] Add Decimal128#to_s(scale=nil)
04a7b68 is described below
commit 04a7b682dceb8de0f707a37b51e5411ada963cd8
Author: Yosuke Shiro <[email protected]>
AuthorDate: Sun Mar 17 05:36:27 2019 +0900
ARROW-4924: [Ruby] Add Decimal128#to_s(scale=nil)
Author: Yosuke Shiro <[email protected]>
Closes #3936 from shiro615/ruby-decimal128-to-s and squashes the following
commits:
7d93da42 <Yosuke Shiro> Add Decimal128#to_s(scale=nil)
---
.../test-decimal128.rb => lib/arrow/decimal128.rb} | 50 +++++++++-------------
ruby/red-arrow/lib/arrow/loader.rb | 1 +
ruby/red-arrow/test/test-decimal128.rb | 12 ++++++
3 files changed, 33 insertions(+), 30 deletions(-)
diff --git a/ruby/red-arrow/test/test-decimal128.rb
b/ruby/red-arrow/lib/arrow/decimal128.rb
similarity index 55%
copy from ruby/red-arrow/test/test-decimal128.rb
copy to ruby/red-arrow/lib/arrow/decimal128.rb
index 82c6fe3..20da7e2 100644
--- a/ruby/red-arrow/test/test-decimal128.rb
+++ b/ruby/red-arrow/lib/arrow/decimal128.rb
@@ -15,37 +15,27 @@
# specific language governing permissions and limitations
# under the License.
-class Decimal128Test < Test::Unit::TestCase
- sub_test_case("instance methods") do
- def setup
- @decimal128 = Arrow::Decimal128.new("10.1")
- end
-
- sub_test_case("#==") do
- test("Arrow::Decimal128") do
- assert do
- @decimal128 == @decimal128
- end
- end
-
- test("not Arrow::Decimal128") do
- assert do
- not (@decimal128 == 10.1)
- end
- end
- end
-
- sub_test_case("#!=") do
- test("Arrow::Decimal128") do
- assert do
- not (@decimal128 != @decimal128)
- end
- end
+module Arrow
+ class Decimal128
+ alias_method :to_s_raw, :to_s
- test("not Arrow::Decimal128") do
- assert do
- @decimal128 != 10.1
- end
+ # @overload to_s
+ #
+ # @return [String]
+ # The string representation of the decimal.
+ #
+ # @overload to_s(scale)
+ #
+ # @param scale [Integer] The scale of the decimal.
+ # @return [String]
+ # The string representation of the decimal including the scale.
+ #
+ # @since 0.13.0
+ def to_s(scale=nil)
+ if scale
+ to_string_scale(scale)
+ else
+ to_s_raw
end
end
end
diff --git a/ruby/red-arrow/lib/arrow/loader.rb
b/ruby/red-arrow/lib/arrow/loader.rb
index 280229b..a4b3604 100644
--- a/ruby/red-arrow/lib/arrow/loader.rb
+++ b/ruby/red-arrow/lib/arrow/loader.rb
@@ -45,6 +45,7 @@ module Arrow
require "arrow/date32-array-builder"
require "arrow/date64-array"
require "arrow/date64-array-builder"
+ require "arrow/decimal128"
require "arrow/decimal128-array-builder"
require "arrow/decimal128-data-type"
require "arrow/dense-union-data-type"
diff --git a/ruby/red-arrow/test/test-decimal128.rb
b/ruby/red-arrow/test/test-decimal128.rb
index 82c6fe3..1476bc3 100644
--- a/ruby/red-arrow/test/test-decimal128.rb
+++ b/ruby/red-arrow/test/test-decimal128.rb
@@ -48,5 +48,17 @@ class Decimal128Test < Test::Unit::TestCase
end
end
end
+
+ sub_test_case("#to_s") do
+ test("default") do
+ assert_equal("101",
+ @decimal128.to_s)
+ end
+
+ test("scale") do
+ assert_equal("10.1",
+ @decimal128.to_s(1))
+ end
+ end
end
end