ya_kansuji 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b533562701ef0ed367dc665df6190ad55d8e967b6301b2edd915c594eb96337
4
- data.tar.gz: 81f83784f8e57fc41efff6a9c1f757aad7e3d9c3dcb9b406296f771de09b214b
3
+ metadata.gz: de9deb8ed6a818c9939482fc8c6408ec00659a67810dfc0eb034ae9bcc821a43
4
+ data.tar.gz: 701f44b2de1b5186c1f92f8779840af3ae2ca873fd820a4120e4d653ed194888
5
5
  SHA512:
6
- metadata.gz: dc82119a8fb4b6d60513e12816c08f1e7d61e53678bef560036d6084f13a1e72ac3c4b19277b94dc4eab8e286f2d7dddd9c8b728c51dcca4b3ac437e356ec486
7
- data.tar.gz: 9600d3bc5233393c6ce2c1fdae3cddc119e1f38c12bd6643da8ce8dffb151791d9edb7d4edaff66c6d42c103d2e59dcdc57eabf786556f977fdfdc876753afcb
6
+ metadata.gz: c8c3263df051a72dc07c1a8a38acf59f1f94c8b896bb9f2d718637f0b808d7d6b0c02bf43975c892fb1c634a5affd9f02f094be4911a926d5218ab467a6ff794
7
+ data.tar.gz: 69c8d4b5413a6ec864ac3d7e4e70d258c0f01ecd7684f30ff6c4a414b59751403807eb2850be44489a900df306e54e4f16e50f36555a165675c9f16c4ba33e55
data/ChangeLog CHANGED
@@ -1,3 +1,9 @@
1
+ 2025-03-09 Tatsuki Sugiura <sug@nemui.org>
2
+
3
+ * Version: 1.0.0
4
+ * Minor changes to cleanup build with ruby 3.x
5
+ * Strip whitespace on parsing.
6
+
1
7
  2019-04-21 Tatsuki Sugiura <sugi@nemui.org>
2
8
 
3
9
  * Version: 0.2.0
data/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
  [<img src="https://travis-ci.org/sugi/ya_kansuji.svg?branch=master" alt="Build Status" />](https://travis-ci.org/sugi/ya_kansuji)
5
5
  [<img src="https://coveralls.io/repos/sugi/ya_kansuji/badge.svg?branch=master&service=github" alt="Coverage Status" />](https://coveralls.io/github/sugi/ya_kansuji?branch=master)
6
6
  [![Maintainability](https://api.codeclimate.com/v1/badges/007f79c6f7f6e82daa20/maintainability)](https://codeclimate.com/github/sugi/ya_kansuji/maintainability)
7
+ [![Codacy Badge](https://app.codacy.com/project/badge/Grade/048e7a2f52cb48908c4deba7ce696f08)](https://app.codacy.com/gh/sugi/ya_kansuji/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
7
8
 
8
9
  Yet another (ultimate) Japanese Kansuji library for ruby.
9
10
 
@@ -2,15 +2,15 @@
2
2
 
3
3
  require 'ya_kansuji'
4
4
 
5
- # String and Integer refinements with YaKansuji
6
5
  module YaKansuji
6
+ # String and Integer refinements with YaKansuji
7
7
  module CoreRefine
8
8
  refine String do
9
9
  def to_i(base = nil)
10
10
  if base.nil? || base == :kan || base == :kansuji
11
11
  YaKansuji.to_i self
12
12
  else
13
- super base
13
+ super
14
14
  end
15
15
  end
16
16
  end
@@ -1,6 +1,6 @@
1
- # Simple kansuji formatter
2
1
  module YaKansuji
3
2
  module Formatter
3
+ # Formatter for Japan government-style kansuji
4
4
  module Gov
5
5
  module_function
6
6
 
@@ -9,14 +9,14 @@ module YaKansuji
9
9
 
10
10
  parts = []
11
11
  (UNIT_EXP4.reverse + ['']).each_with_index do |unit4, ridx4|
12
- i4 = (num / 10_000**(UNIT_EXP4.size - ridx4)).to_i % 10_000
12
+ i4 = (num / (10_000**(UNIT_EXP4.size - ridx4))).to_i % 10_000
13
13
  next if i4.zero?
14
14
 
15
15
  if i4 == 1
16
16
  parts << "1#{unit4}"
17
17
  next
18
18
  end
19
- parts << i4.to_s + unit4
19
+ parts << (i4.to_s + unit4)
20
20
  end
21
21
  parts.join(', ')
22
22
  end
@@ -1,6 +1,7 @@
1
1
  # Simple kansuji formatter
2
2
  module YaKansuji
3
3
  module Formatter
4
+ # Formatter for Jpanese judicial style kansuji (arabic numerals version)
4
5
  module JudicH
5
6
  module_function
6
7
 
@@ -10,13 +11,13 @@ module YaKansuji
10
11
  ret = ''
11
12
  head = true
12
13
  (UNIT_EXP4.reverse + ['']).each_with_index do |unit4, ridx4|
13
- i4 = (num / 10_000**(UNIT_EXP4.size - ridx4)).to_i % 10_000
14
+ i4 = (num / (10_000**(UNIT_EXP4.size - ridx4))).to_i % 10_000
14
15
  next if i4.zero?
15
16
 
16
17
  if head
17
- ret << i4.to_s + unit4
18
+ ret << (i4.to_s + unit4)
18
19
  else
19
- ret << ('%04d' % i4) + unit4
20
+ ret << (('%04d' % i4) + unit4)
20
21
  end
21
22
  head = false
22
23
  end
@@ -1,6 +1,7 @@
1
1
  # Simple kansuji formatter
2
2
  module YaKansuji
3
3
  module Formatter
4
+ # Formatter for Jpanese judicial style kansuji (kanji numerals version)
4
5
  module JudicV
5
6
  module_function
6
7
 
@@ -10,13 +11,13 @@ module YaKansuji
10
11
  ret = ''
11
12
  head = true
12
13
  (UNIT_EXP4.reverse + ['']).each_with_index do |unit4, ridx4|
13
- i4 = (num / 10_000**(UNIT_EXP4.size - ridx4)).to_i % 10_000
14
+ i4 = (num / (10_000**(UNIT_EXP4.size - ridx4))).to_i % 10_000
14
15
  next if i4.zero?
15
16
 
16
17
  if head
17
- ret << i4.to_s + unit4
18
+ ret << (i4.to_s + unit4)
18
19
  else
19
- ret << ('%04d' % i4) + unit4
20
+ ret << (('%04d' % i4) + unit4)
20
21
  end
21
22
  head = false
22
23
  end
@@ -1,6 +1,7 @@
1
1
  # Simple kansuji formatter
2
2
  module YaKansuji
3
3
  module Formatter
4
+ # Formatter for Jpanese lawyer style kansuji
4
5
  module Lawyer
5
6
  module_function
6
7
 
@@ -9,7 +10,7 @@ module YaKansuji
9
10
 
10
11
  ret = ''
11
12
  (UNIT_EXP4.reverse + ['']).each_with_index do |unit4, ridx4|
12
- i4 = (num / 10_000**(UNIT_EXP4.size - ridx4)).to_i % 10_000
13
+ i4 = (num / (10_000**(UNIT_EXP4.size - ridx4))).to_i % 10_000
13
14
  next if i4.zero?
14
15
 
15
16
  if i4 == 1
@@ -17,7 +18,7 @@ module YaKansuji
17
18
  next
18
19
  end
19
20
 
20
- ret << (i4 >= 1000 ? "#{i4.to_s[0]},#{i4.to_s[1..-1]}" : i4.to_s) + unit4
21
+ ret << ((i4 >= 1000 ? "#{i4.to_s[0]},#{i4.to_s[1..-1]}" : i4.to_s) + unit4)
21
22
  end
22
23
  ret
23
24
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Simple kansuji formatter
4
3
  module YaKansuji
5
4
  module Formatter
5
+ # Simple kansuji formatter
6
6
  module Simple
7
7
  module_function
8
8
 
@@ -11,7 +11,7 @@ module YaKansuji
11
11
 
12
12
  ret = ''
13
13
  (UNIT_EXP4.reverse + ['']).each_with_index do |unit4, ridx4|
14
- i4 = (num / 10_000**(UNIT_EXP4.size - ridx4)).to_i % 10_000
14
+ i4 = (num / (10_000**(UNIT_EXP4.size - ridx4))).to_i % 10_000
15
15
  next if i4.zero?
16
16
 
17
17
  if i4 == 1
@@ -19,7 +19,7 @@ module YaKansuji
19
19
  next
20
20
  end
21
21
  (UNIT_EXP3.reverse + ['']).each_with_index do |unit3, ridx3|
22
- i3 = (i4 / 10**(UNIT_EXP3.size - ridx3)).to_i % 10
22
+ i3 = (i4 / (10**(UNIT_EXP3.size - ridx3))).to_i % 10
23
23
  next if i3.zero?
24
24
 
25
25
  if i3 == 1 && unit3 != ''
@@ -1,3 +1,3 @@
1
1
  module YaKansuji
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
data/lib/ya_kansuji.rb CHANGED
@@ -7,8 +7,9 @@ require 'ya_kansuji/core_refine'
7
7
  module YaKansuji
8
8
  UNIT_EXP3 = %w(十 百 千).freeze
9
9
  UNIT_EXP4 = %w(万 億 兆 京 垓 𥝱 穣 溝 澗 正 載 極 恒河沙 阿僧祇 那由他 不可思議 無量大数).freeze
10
- NUM_ALT_CHARS = '〇一二三四五六七八九0123456789零壱壹弌弐貳貮参參弎肆伍陸漆質柒捌玖拾什陌佰阡仟萬秭'.freeze
11
- NUM_NORMALIZED_CHARS = '01234567890123456789011122233345677789十十百百千千万𥝱'.freeze
10
+ NUM_ALT_CHARS = '〇一二三四五六七八九0123456789零壱壹弌弐貳貮参參弎肆伍陸漆質柒捌玖拾什陌佰阡仟萬秭'
11
+ NUM_NORMALIZED_CHARS = '01234567890123456789011122233345677789十十百百千千万𥝱'
12
+ # rubocop:disable Lint/DuplicateRegexpCharacterClassElement
12
13
  REGEXP_PART = %r{
13
14
  [
14
15
  #{(NUM_ALT_CHARS + NUM_NORMALIZED_CHARS).chars.uniq.join}
@@ -17,6 +18,7 @@ module YaKansuji
17
18
  ] |
18
19
  #{UNIT_EXP4.find_all { |u| u.length > 1 }.join('|')}
19
20
  }x.freeze
21
+ # rubocop:enable Lint/DuplicateRegexpCharacterClassElement
20
22
  REGEXP = /(?:#{REGEXP_PART})+/.freeze
21
23
  @@formatters = {}
22
24
 
@@ -24,7 +26,7 @@ module YaKansuji
24
26
 
25
27
  def to_i(str)
26
28
  str = str.to_s.tr(NUM_ALT_CHARS, NUM_NORMALIZED_CHARS)
27
- str.gsub!(/[,,、:space:]/, '')
29
+ str.gsub!(/[,,、[:space:]]/, '')
28
30
  matched = REGEXP.match(str) or return 0
29
31
  ret3 = 0
30
32
  ret4 = 0
@@ -63,11 +65,11 @@ module YaKansuji
63
65
  curnum = nil
64
66
  end
65
67
  ret3 = 1 if ret3.zero?
66
- ret4 += ret3 * 10**((UNIT_EXP4.index(c) + 1) * 4)
68
+ ret4 += ret3 * (10**((UNIT_EXP4.index(c) + 1) * 4))
67
69
  ret3 = 0
68
70
  when *UNIT_EXP3
69
71
  curnum ||= 1
70
- ret3 += curnum * 10**(UNIT_EXP3.index(c) + 1)
72
+ ret3 += curnum * (10**(UNIT_EXP3.index(c) + 1))
71
73
  curnum = nil
72
74
  end
73
75
  end
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ya_kansuji
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuki Sugiura
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-21 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '1.9'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '1.9'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
11
+ date: 2025-03-09 00:00:00.000000000 Z
12
+ dependencies: []
55
13
  description: |
56
14
  Pure ruby library of Japanese kansuji.
57
15
  Bi-directional convert support between number and kanji string.
@@ -76,8 +34,9 @@ files:
76
34
  homepage: https://github.com/sugi/ya_kansuji
77
35
  licenses:
78
36
  - MIT
79
- metadata: {}
80
- post_install_message:
37
+ metadata:
38
+ rubygems_mfa_required: 'true'
39
+ post_install_message:
81
40
  rdoc_options: []
82
41
  require_paths:
83
42
  - lib
@@ -92,9 +51,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
51
  - !ruby/object:Gem::Version
93
52
  version: '0'
94
53
  requirements: []
95
- rubyforge_project:
96
- rubygems_version: 2.7.6.2
97
- signing_key:
54
+ rubygems_version: 3.1.6
55
+ signing_key:
98
56
  specification_version: 4
99
57
  summary: Japanese kansuji library for ruby
100
58
  test_files: []