Class: Yosina::Transliterators::Radicals::Transliterator
- Inherits:
-
BaseTransliterator
- Object
- BaseTransliterator
- Yosina::Transliterators::Radicals::Transliterator
- Defined in:
- lib/yosina/transliterators/radicals.rb
Overview
Transliterator for radicals
Instance Method Summary collapse
-
#call(input_chars) ⇒ Enumerable<Char>
Replace Kangxi radicals with equivalent CJK ideographs.
-
#initialize(_options = {}) ⇒ Transliterator
constructor
Initialize the transliterator with options.
Constructor Details
#initialize(_options = {}) ⇒ Transliterator
Initialize the transliterator with options
318 319 320 321 |
# File 'lib/yosina/transliterators/radicals.rb', line 318 def initialize( = {}) # Options currently unused for radicals transliterator super() end |
Instance Method Details
#call(input_chars) ⇒ Enumerable<Char>
Replace Kangxi radicals with equivalent CJK ideographs
327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 |
# File 'lib/yosina/transliterators/radicals.rb', line 327 def call(input_chars) offset = 0 result = input_chars.filter_map do |char| replacement = RADICALS_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 |