1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements.  See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership.  The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License.  You may obtain a copy of the License at
8#
9#   http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied.  See the License for the
15# specific language governing permissions and limitations
16# under the License.
17
18module Arrow
19  class Decimal256
20    alias_method :to_s_raw, :to_s
21
22    # @overload to_s
23    #
24    #   @return [String]
25    #     The string representation of the decimal.
26    #
27    # @overload to_s(scale)
28    #
29    #   @param scale [Integer] The scale of the decimal.
30    #   @return [String]
31    #      The string representation of the decimal including the scale.
32    #
33    # @since 3.0.0
34    def to_s(scale=nil)
35      if scale
36        to_string_scale(scale)
37      else
38        to_s_raw
39      end
40    end
41
42    alias_method :abs!, :abs
43
44    # @since 3.0.0
45    def abs
46      copied = dup
47      copied.abs!
48      copied
49    end
50
51    alias_method :negate!, :negate
52
53    # @since 3.0.0
54    def negate
55      copied = dup
56      copied.negate!
57      copied
58    end
59  end
60end
61