Module: YaKansuji::Formatter::JudicV

Defined in:
lib/ya_kansuji/formatter/judic_v.rb

Overview

Formatter for Jpanese judicial style kansuji (kanji numerals version)

Class Method Summary collapse

Class Method Details

.call(num, _options = {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/ya_kansuji/formatter/judic_v.rb', line 10

def call(num, _options = {})
  int, frac = Formatter.split_fraction(num)
  return '' if int.zero? && frac.empty?

  ret = +''
  head = true
  chunks = Formatter.split_by_unit4(int)
  (chunks.size - 1).downto(0) do |idx4|
    i4 = chunks[idx4]
    next if i4.zero? && !(idx4.zero? && !frac.empty?)

    unit4 = Formatter::UNIT4_UNITS[idx4]
    if head
      ret << (i4.to_s + unit4)
    else
      ret << (('%04d' % i4) + unit4)
    end
    head = false
  end
  ret << '' << frac.join unless frac.empty?
  ret.tr('0-9', '〇一二三四五六七八九')
end