amakanize 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/release.yml +23 -0
  3. data/.github/workflows/bump-request.yml +26 -0
  4. data/.github/workflows/github-label-sync.yml +18 -0
  5. data/.github/workflows/release.yml +12 -0
  6. data/.github/workflows/test.yml +27 -0
  7. data/.gitignore +0 -1
  8. data/.rubocop.yml +3 -73
  9. data/Gemfile +7 -1
  10. data/Gemfile.lock +58 -0
  11. data/README.md +2 -4
  12. data/Rakefile +10 -3
  13. data/amakanize.gemspec +13 -14
  14. data/lib/amakanize/author_name.rb +4 -2
  15. data/lib/amakanize/author_names.rb +5 -5
  16. data/lib/amakanize/book_position.rb +4 -2
  17. data/lib/amakanize/filterable.rb +3 -1
  18. data/lib/amakanize/filters/base_filter.rb +2 -0
  19. data/lib/amakanize/filters/book_position_at_end_detection_filter.rb +8 -8
  20. data/lib/amakanize/filters/book_position_clearing_filter.rb +5 -5
  21. data/lib/amakanize/filters/book_position_in_bracket_detection_filter.rb +8 -8
  22. data/lib/amakanize/filters/book_position_in_words_detection_filter.rb +8 -8
  23. data/lib/amakanize/filters/book_position_number_canonicalization_filter.rb +5 -5
  24. data/lib/amakanize/filters/brackets_normalization_filter.rb +4 -2
  25. data/lib/amakanize/filters/continuous_spaces_normalization_filter.rb +4 -2
  26. data/lib/amakanize/filters/dash_between_alphabets_normalization_filter.rb +4 -2
  27. data/lib/amakanize/filters/html_unescape_filter.rb +5 -3
  28. data/lib/amakanize/filters/hyphen_minus_normalization_filter.rb +4 -2
  29. data/lib/amakanize/filters/normalization_filter.rb +4 -2
  30. data/lib/amakanize/filters/obvious_volume_number_deletion_filter.rb +7 -5
  31. data/lib/amakanize/filters/parentheses_deletion_filter.rb +4 -2
  32. data/lib/amakanize/filters/role_name_deletion_filter.rb +9 -7
  33. data/lib/amakanize/filters/space_between_exclamation_and_bracket_deletion_filter.rb +4 -2
  34. data/lib/amakanize/filters/space_deletion_filter.rb +4 -2
  35. data/lib/amakanize/filters/spaces_between_exclamations_deletion_filter.rb +4 -2
  36. data/lib/amakanize/filters/strip_filter.rb +4 -2
  37. data/lib/amakanize/filters/trailing_author_name_payload_deletion_filter.rb +6 -4
  38. data/lib/amakanize/filters/trailing_dash_deletion_filter.rb +6 -4
  39. data/lib/amakanize/filters/trailing_double_parentheses_singlization_filter.rb +6 -4
  40. data/lib/amakanize/filters/trailing_parentheses_deletion_filter.rb +5 -5
  41. data/lib/amakanize/filters/trailing_series_name_payload_deletion_filter.rb +5 -3
  42. data/lib/amakanize/filters/trailing_symbol_deletion_filter.rb +6 -4
  43. data/lib/amakanize/filters/trailing_volume_number_deletion_filter.rb +5 -5
  44. data/lib/amakanize/filters/video_position_detection_filter.rb +10 -9
  45. data/lib/amakanize/filters/video_position_number_conversion_filter.rb +115 -113
  46. data/lib/amakanize/series_name.rb +4 -2
  47. data/lib/amakanize/version.rb +3 -1
  48. data/lib/amakanize/video_position.rb +4 -2
  49. data/lib/amakanize.rb +41 -39
  50. metadata +11 -47
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -10,7 +12,7 @@ module Amakanize
10
12
  def call(context:, output:)
11
13
  {
12
14
  context: context,
13
- output: output.tr("", "-"),
15
+ output: output.tr('', '-')
14
16
  }
15
17
  end
16
18
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.unicode_normalize(:nfkc),
14
+ output: output.unicode_normalize(:nfkc)
13
15
  }
14
16
  end
15
17
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,9 +11,9 @@ module Amakanize
9
11
  /\s+#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\s+.*/,
10
12
  /\s+Lv\.?\s*#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:\s+.*|\z)/,
11
13
  /\s*\(#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}?#{::Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\).*/,
12
- %r<\s*\d+年\s*\d+\s*(?:月|/\d+\s*)号.*>,
14
+ %r{\s*\d+年\s*\d+\s*(?:月|/\d+\s*)号.*},
13
15
  /\s*\d{4}\s*(?:AUTUMN|SPRING|SUMMER|WINTER)/,
14
- /\s*\d+年\s*\d+\s*号.*/,
16
+ /\s*\d+年\s*\d+\s*号.*/
15
17
  )
16
18
 
17
19
  # @note Override
@@ -21,12 +23,12 @@ module Amakanize
21
23
  unless context[:volume_number_removed]
22
24
  output = output.sub(PATTERN) do
23
25
  context[:volume_number_removed] = true
24
- ""
26
+ ''
25
27
  end
26
28
  end
27
29
  {
28
30
  context: context,
29
- output: output,
31
+ output: output
30
32
  }
31
33
  end
32
34
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/\((\d+)\)/, '\1'),
14
+ output: output.gsub(/\((\d+)\)/, '\1')
13
15
  }
14
16
  end
15
17
  end
@@ -1,17 +1,19 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class RoleNameDeletionFilter < ::Amakanize::Filters::BaseFilter
6
8
  PATTERN_OF_ROLE_NAME = ::Regexp.union(
7
- %w(
9
+ %w[
8
10
  イラスト
9
11
  カバーデザイン
10
12
  キャラクター原案
11
13
  原作
12
14
  原案
13
15
  漫画
14
- )
16
+ ]
15
17
  )
16
18
 
17
19
  # @note Override
@@ -21,10 +23,10 @@ module Amakanize
21
23
  {
22
24
  context: context,
23
25
  output: output
24
- .gsub(%r<\A#{PATTERN_OF_ROLE_NAME}[:/]>, "")
25
- .gsub(%r<[:/]#{PATTERN_OF_ROLE_NAME}\z>, "")
26
- .gsub(/\A\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)/, "")
27
- .gsub(/\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)\z/, ""),
26
+ .gsub(%r{\A#{PATTERN_OF_ROLE_NAME}[:/]}, '')
27
+ .gsub(%r{[:/]#{PATTERN_OF_ROLE_NAME}\z}, '')
28
+ .gsub(/\A\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)/, '')
29
+ .gsub(/\(#{PATTERN_OF_ROLE_NAME}(?:・#{PATTERN_OF_ROLE_NAME})*\)\z/, '')
28
30
  }
29
31
  end
30
32
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/!\s+」/, "!」"),
14
+ output: output.gsub(/!\s+」/, '!」')
13
15
  }
14
16
  end
15
17
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/\s+/, ""),
14
+ output: output.gsub(/\s+/, '')
13
15
  }
14
16
  end
15
17
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.gsub(/!\s+!/, "!!"),
14
+ output: output.gsub(/!\s+!/, '!!')
13
15
  }
14
16
  end
15
17
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,7 +11,7 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.strip,
14
+ output: output.strip
13
15
  }
14
16
  end
15
17
  end
@@ -1,16 +1,18 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class TrailingAuthorNamePayloadDeletionFilter < ::Amakanize::Filters::BaseFilter
6
- PAYLOADS = %w(
8
+ PAYLOADS = %w[
7
9
  その他
8
10
  ほか
9
11
 
10
12
  原作
11
13
  原案
12
14
  漫画
13
- )
15
+ ].freeze
14
16
 
15
17
  # @note Override
16
18
  # @param output [String] e.g. `"ハノカゲ ほか"`
@@ -18,7 +20,7 @@ module Amakanize
18
20
  def call(context:, output:)
19
21
  {
20
22
  context: context,
21
- output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, ""),
23
+ output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, '')
22
24
  }
23
25
  end
24
26
  end
@@ -1,9 +1,11 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class TrailingDashDeletionFilter < ::Amakanize::Filters::BaseFilter
6
- TOKENS = %w(
8
+ TOKENS = %w[
7
9
  ̃
8
10
  ̰
9
11
  ̴
@@ -20,7 +22,7 @@ module Amakanize
20
22
 
21
23
 
22
24
 
23
- )
25
+ ].freeze
24
26
 
25
27
  # @note Override
26
28
  # @param output [String] e.g. `"アド・アストラ 1 ─スキピオとハンニバル─"`
@@ -28,7 +30,7 @@ module Amakanize
28
30
  def call(context:, output:)
29
31
  {
30
32
  context: context,
31
- output: output.gsub(/\s*#{::Regexp.union(TOKENS)}.*/, ""),
33
+ output: output.gsub(/\s*#{::Regexp.union(TOKENS)}.*/, '')
32
34
  }
33
35
  end
34
36
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -9,9 +11,9 @@ module Amakanize
9
11
  def call(context:, output:)
10
12
  {
11
13
  context: context,
12
- output: output.sub(/\([^\(^\)]+?\([^\(]+?\)[^\)^\(]+?\)\z/) do
13
- "(" + $&.gsub(/[\(\)]/, "") + ")"
14
- end,
14
+ output: output.sub(/\([^(^)]+?\([^(]+?\)[^)^(]+?\)\z/) do
15
+ "(#{::Regexp.last_match(0).gsub(/[()]/, '')})"
16
+ end
15
17
  }
16
18
  end
17
19
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -7,12 +9,10 @@ module Amakanize
7
9
  # @param output [String] e.g. `"魔法使いの嫁 通常版 4 (BLADE COMICS)"`
8
10
  # @return [Hash] e.g. `"魔法使いの嫁 通常版 4"`
9
11
  def call(context:, output:)
10
- unless context[:volume_number_removed]
11
- output = output.sub(/\s*\([^\(]+\)\z/, "")
12
- end
12
+ output = output.sub(/\s*\([^(]+\)\z/, '') unless context[:volume_number_removed]
13
13
  {
14
14
  context: context,
15
- output: output,
15
+ output: output
16
16
  }
17
17
  end
18
18
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -6,7 +8,7 @@ module Amakanize
6
8
  PAYLOADS = %w(
7
9
  通常版
8
10
  (未分類)
9
- )
11
+ ).freeze
10
12
 
11
13
  # @note Override
12
14
  # @param output [String] e.g. `"魔法使いの嫁 通常版"`
@@ -14,7 +16,7 @@ module Amakanize
14
16
  def call(context:, output:)
15
17
  {
16
18
  context: context,
17
- output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, ""),
19
+ output: output.gsub(/\s+#{::Regexp.union(PAYLOADS)}\z/, '')
18
20
  }
19
21
  end
20
22
  end
@@ -1,16 +1,18 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
5
7
  class TrailingSymbolDeletionFilter < ::Amakanize::Filters::BaseFilter
6
- PATTERN = /\s*[-:]\z/
8
+ PATTERN = /\s*[-:]\z/.freeze
7
9
 
8
10
  # @note Override
9
11
  def call(context:, output:)
10
- output = output.gsub(PATTERN, "")
12
+ output = output.gsub(PATTERN, '')
11
13
  {
12
14
  context: context,
13
- output: output,
15
+ output: output
14
16
  }
15
17
  end
16
18
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -7,12 +9,10 @@ module Amakanize
7
9
  # @param output [String] e.g. `"やはり俺の青春ラブコメはまちがっている。4"`, `"ネトゲの嫁は女の子じゃないと思った? Lv.2"`
8
10
  # @return [Hash] e.g. `"やはり俺の青春ラブコメはまちがっている。"`, `"ネトゲの嫁は女の子じゃないと思った?"`
9
11
  def call(context:, output:)
10
- if !context[:volume_number_removed] && !output.match(/[^\s]Lv\.?\s*#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\z/i)
11
- output = output.sub(/,?\s*#{PATTERN_OF_VOLUME_PREFIX}?#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:話|巻|版)?(?:\s*\(.*?\))?\z/, "")
12
- end
12
+ output = output.sub(/,?\s*#{PATTERN_OF_VOLUME_PREFIX}?#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}(?:話|巻|版)?(?:\s*\(.*?\))?\z/, '') if !context[:volume_number_removed] && !output.match(/[^\s]Lv\.?\s*#{Amakanize::PATTERN_OF_NUMERIC_CHARACTERS}\z/i)
13
13
  {
14
14
  context: context,
15
- output: output,
15
+ output: output
16
16
  }
17
17
  end
18
18
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -7,16 +9,15 @@ module Amakanize
7
9
  # @param output [String] e.g. `"第1話「でじこだにょ」/第2話「ぷちこと一緒かにょ?」"`
8
10
  # @return [Hash] e.g. `"1"`
9
11
  def call(context:, output:)
10
- output = begin
11
- if output.match(/#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}(#{PATTERN_OF_NUMERIC_CHARACTERS})/)
12
- ::Regexp.last_match(1)
13
- else
14
- ""
15
- end
16
- end
12
+ output = if output.match(/#{::Amakanize::PATTERN_OF_VOLUME_PREFIX}(#{PATTERN_OF_NUMERIC_CHARACTERS})/)
13
+ ::Regexp.last_match(1)
14
+ else
15
+ ''
16
+ end
17
+
17
18
  {
18
19
  context: context,
19
- output: output,
20
+ output: output
20
21
  }
21
22
  end
22
23
  end
@@ -1,4 +1,6 @@
1
- require "amakanize/filters/base_filter"
1
+ # frozen_string_literal: true
2
+
3
+ require 'amakanize/filters/base_filter'
2
4
 
3
5
  module Amakanize
4
6
  module Filters
@@ -34,125 +36,125 @@ module Amakanize
34
36
  /xxviii/i => 28,
35
37
  /xxix/i => 29,
36
38
  /xxx/i => 30,
37
- "" => 1,
38
- "" => 2,
39
- "" => 3,
40
- "" => 4,
41
- "" => 5,
42
- "" => 6,
43
- "" => 7,
44
- "" => 8,
45
- "" => 9,
46
- "" => 10,
47
- "十一" => 11,
48
- "十二" => 12,
49
- "十三" => 13,
50
- "十四" => 14,
51
- "十五" => 15,
52
- "十六" => 16,
53
- "十七" => 17,
54
- "十八" => 18,
55
- "十九" => 19,
56
- "二十" => 20,
57
- "二十一" => 21,
58
- "二十二" => 22,
59
- "二十三" => 23,
60
- "二十四" => 24,
61
- "二十五" => 25,
62
- "二十六" => 26,
63
- "二十七" => 27,
64
- "二十八" => 28,
65
- "二十九" => 29,
66
- "三十" => 30,
67
- "三十一" => 31,
68
- "三十二" => 32,
69
- "三十三" => 33,
70
- "三十四" => 34,
71
- "三十五" => 35,
72
- "三十六" => 36,
73
- "三十七" => 37,
74
- "三十八" => 38,
75
- "三十九" => 39,
76
- "四十" => 40,
77
- "四十一" => 41,
78
- "四十二" => 42,
79
- "四十三" => 43,
80
- "四十四" => 44,
81
- "四十五" => 45,
82
- "四十六" => 46,
83
- "四十七" => 47,
84
- "四十八" => 48,
85
- "四十九" => 49,
86
- "五十" => 50,
87
- "五十一" => 51,
88
- "五十二" => 52,
89
- "五十三" => 53,
90
- "五十四" => 54,
91
- "五十五" => 55,
92
- "五十六" => 56,
93
- "五十七" => 57,
94
- "五十八" => 58,
95
- "五十九" => 59,
96
- "六十" => 60,
97
- "六十一" => 61,
98
- "六十二" => 62,
99
- "六十三" => 63,
100
- "六十四" => 64,
101
- "六十五" => 65,
102
- "六十六" => 66,
103
- "六十七" => 67,
104
- "六十八" => 68,
105
- "六十九" => 69,
106
- "七十" => 70,
107
- "七十一" => 71,
108
- "七十二" => 72,
109
- "七十三" => 73,
110
- "七十四" => 74,
111
- "七十五" => 75,
112
- "七十六" => 76,
113
- "七十七" => 77,
114
- "七十八" => 78,
115
- "七十九" => 79,
116
- "八十" => 80,
117
- "八十一" => 81,
118
- "八十二" => 82,
119
- "八十三" => 83,
120
- "八十四" => 84,
121
- "八十五" => 85,
122
- "八十六" => 86,
123
- "八十七" => 87,
124
- "八十八" => 88,
125
- "八十九" => 89,
126
- "九十" => 90,
127
- "九十一" => 91,
128
- "九十二" => 92,
129
- "九十三" => 93,
130
- "九十四" => 94,
131
- "九十五" => 95,
132
- "九十六" => 96,
133
- "九十七" => 97,
134
- "九十八" => 98,
135
- "九十九" => 99,
136
- "" => 1,
137
- "" => 2,
138
- "" => 3,
139
- "" => 4,
140
- "" => 5,
141
- "" => 6,
142
- "" => 7,
143
- "" => 8,
144
- "" => 9,
145
- "" => 10,
146
- }
39
+ '' => 1,
40
+ '' => 2,
41
+ '' => 3,
42
+ '' => 4,
43
+ '' => 5,
44
+ '' => 6,
45
+ '' => 7,
46
+ '' => 8,
47
+ '' => 9,
48
+ '' => 10,
49
+ '十一' => 11,
50
+ '十二' => 12,
51
+ '十三' => 13,
52
+ '十四' => 14,
53
+ '十五' => 15,
54
+ '十六' => 16,
55
+ '十七' => 17,
56
+ '十八' => 18,
57
+ '十九' => 19,
58
+ '二十' => 20,
59
+ '二十一' => 21,
60
+ '二十二' => 22,
61
+ '二十三' => 23,
62
+ '二十四' => 24,
63
+ '二十五' => 25,
64
+ '二十六' => 26,
65
+ '二十七' => 27,
66
+ '二十八' => 28,
67
+ '二十九' => 29,
68
+ '三十' => 30,
69
+ '三十一' => 31,
70
+ '三十二' => 32,
71
+ '三十三' => 33,
72
+ '三十四' => 34,
73
+ '三十五' => 35,
74
+ '三十六' => 36,
75
+ '三十七' => 37,
76
+ '三十八' => 38,
77
+ '三十九' => 39,
78
+ '四十' => 40,
79
+ '四十一' => 41,
80
+ '四十二' => 42,
81
+ '四十三' => 43,
82
+ '四十四' => 44,
83
+ '四十五' => 45,
84
+ '四十六' => 46,
85
+ '四十七' => 47,
86
+ '四十八' => 48,
87
+ '四十九' => 49,
88
+ '五十' => 50,
89
+ '五十一' => 51,
90
+ '五十二' => 52,
91
+ '五十三' => 53,
92
+ '五十四' => 54,
93
+ '五十五' => 55,
94
+ '五十六' => 56,
95
+ '五十七' => 57,
96
+ '五十八' => 58,
97
+ '五十九' => 59,
98
+ '六十' => 60,
99
+ '六十一' => 61,
100
+ '六十二' => 62,
101
+ '六十三' => 63,
102
+ '六十四' => 64,
103
+ '六十五' => 65,
104
+ '六十六' => 66,
105
+ '六十七' => 67,
106
+ '六十八' => 68,
107
+ '六十九' => 69,
108
+ '七十' => 70,
109
+ '七十一' => 71,
110
+ '七十二' => 72,
111
+ '七十三' => 73,
112
+ '七十四' => 74,
113
+ '七十五' => 75,
114
+ '七十六' => 76,
115
+ '七十七' => 77,
116
+ '七十八' => 78,
117
+ '七十九' => 79,
118
+ '八十' => 80,
119
+ '八十一' => 81,
120
+ '八十二' => 82,
121
+ '八十三' => 83,
122
+ '八十四' => 84,
123
+ '八十五' => 85,
124
+ '八十六' => 86,
125
+ '八十七' => 87,
126
+ '八十八' => 88,
127
+ '八十九' => 89,
128
+ '九十' => 90,
129
+ '九十一' => 91,
130
+ '九十二' => 92,
131
+ '九十三' => 93,
132
+ '九十四' => 94,
133
+ '九十五' => 95,
134
+ '九十六' => 96,
135
+ '九十七' => 97,
136
+ '九十八' => 98,
137
+ '九十九' => 99,
138
+ '' => 1,
139
+ '' => 2,
140
+ '' => 3,
141
+ '' => 4,
142
+ '' => 5,
143
+ '' => 6,
144
+ '' => 7,
145
+ '' => 8,
146
+ '' => 9,
147
+ '' => 10
148
+ }.freeze
147
149
 
148
150
  # @note Override
149
151
  def call(context:, output:)
150
152
  output = TABLE.to_a.reverse.each_with_object(output.clone) do |(key, value), result|
151
- result.gsub!(key, value.to_s)
153
+ result.gsub(key, value.to_s)
152
154
  end
153
155
  {
154
156
  context: context,
155
- output: output,
157
+ output: output
156
158
  }
157
159
  end
158
160
  end