Class: Yosina::Transliterators::IdeographicAnnotations::Transliterator
- Inherits:
-
BaseTransliterator
- Object
- BaseTransliterator
- Yosina::Transliterators::IdeographicAnnotations::Transliterator
- Defined in:
- lib/yosina/transliterators/ideographic_annotations.rb
Overview
Transliterator for ideographic_annotations
Instance Method Summary collapse
-
#call(input_chars) ⇒ Enumerable<Char>
Replace ideographic annotation marks used in traditional translation.
-
#initialize(_options = {}) ⇒ Transliterator
constructor
Initialize the transliterator with options.
Constructor Details
#initialize(_options = {}) ⇒ Transliterator
Initialize the transliterator with options
30 31 32 33 |
# File 'lib/yosina/transliterators/ideographic_annotations.rb', line 30 def initialize( = {}) # Options currently unused for ideographic_annotations transliterator super() end |
Instance Method Details
#call(input_chars) ⇒ Enumerable<Char>
Replace ideographic annotation marks used in traditional translation
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/yosina/transliterators/ideographic_annotations.rb', line 39 def call(input_chars) offset = 0 result = input_chars.filter_map do |char| replacement = IDEOGRAPHIC_ANNOTATIONS_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 |