Module: PositiveNumberSupport::IntegerExt

Defined in:
lib/positive_number_support/integer_ext.rb

Overview

整数のクラス (Integer) に機能を追加するためのモジュール

文字列への変換 collapse

桁数 (digit) collapse

Instance Method Summary collapse

Instance Method Details

#digitInteger

桁数を取得するメソッド

Examples:

3.digit => 1
17.digit => 2
100.digit => 3
-2000.digit => 4

Returns:

  • (Integer)


52
53
54
# File 'lib/positive_number_support/integer_ext.rb', line 52

def digit
  abs.to_s.length
end

#meaningful?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/positive_number_support/integer_ext.rb', line 27

def meaningful?
  natural_number?
end

#pjust(int: 4, float: 3) ⇒ String (number)

rjust, ljust を用いて,小数点の桁揃えを行うメソッド

Parameters:

  • int (Integer (natural number)) (defaults to: 4)

    整数部の桁数

  • float (Integer (natural number)) (defaults to: 3)

    小数部の桁数

Returns:

  • (String (number))

Raises:

  • (IndexError)

    left, right の両方が自然数でない場合に発生するエラー



38
39
40
41
# File 'lib/positive_number_support/integer_ext.rb', line 38

def pjust( int: 4 , float: 3 )
  raise "Error: The variables \'int\' and \'float\' should be integer." unless [ int , float ].all?( &:integer? )
  to_s.rjust( int ).ljust( float + 1)
end

#to_currency(n = 3, separator: ",") ⇒ String

n 桁(デフォルトは3桁)ごとに文字 separator (デフォルトは “,” )で区切るメソッド

Examples:

1234.to_currency => "1,234"
1234567890.to_currency => "1,234,567,890"
1234567890.to_currency() => "1,234,567,890"
12345.to_currency(4,separator: " " ) => "1 2345"
1234567890.to_currency(3,separator: "." ) => "1.234.567.890"

Returns:

  • (String)


12
13
14
# File 'lib/positive_number_support/integer_ext.rb', line 12

def to_currency( n = 3 , separator: "," )
  to_s.reverse.gsub( /(\d{#{n}})(?=\d)/ , '\1' + separator ).reverse
end

#to_two_digit_hexString

16進数の文字列に変換するメソッド

Returns:

  • (String)


18
19
20
21
22
23
24
25
# File 'lib/positive_number_support/integer_ext.rb', line 18

def to_two_digit_hex
  str = to_s(16)
  if str.length == 1
    "0" + str
  else
    str
  end
end