Class: Yosina::Transliterators::KanjiOldNew::Transliterator
- Inherits:
-
BaseTransliterator
- Object
- BaseTransliterator
- Yosina::Transliterators::KanjiOldNew::Transliterator
- Defined in:
- lib/yosina/transliterators/kanji_old_new.rb
Overview
Transliterator for kanji_old_new
Instance Method Summary collapse
-
#call(input_chars) ⇒ Enumerable<Char>
Replace old-style kanji with modern equivalents.
-
#initialize(_options = {}) ⇒ Transliterator
constructor
Initialize the transliterator with options.
Constructor Details
#initialize(_options = {}) ⇒ Transliterator
Initialize the transliterator with options
1094 1095 1096 1097 |
# File 'lib/yosina/transliterators/kanji_old_new.rb', line 1094 def initialize( = {}) # Options currently unused for kanji_old_new transliterator super() end |
Instance Method Details
#call(input_chars) ⇒ Enumerable<Char>
Replace old-style kanji with modern equivalents
1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 |
# File 'lib/yosina/transliterators/kanji_old_new.rb', line 1103 def call(input_chars) offset = 0 result = input_chars.filter_map do |char| replacement = KANJI_OLD_NEW_MAPPINGS[char.c] c = if replacement # Skip empty replacements (character removal) next if replacement.empty? Char.new(c: replacement, offset: offset, source: char) else char.with_offset(offset) end offset += c.c.length c end class << result include Yosina::Chars end result end |