Class: Yosina::Transliterators::ArchaicHirakatas::Transliterator
- Inherits:
-
BaseTransliterator
- Object
- BaseTransliterator
- Yosina::Transliterators::ArchaicHirakatas::Transliterator
- Defined in:
- lib/yosina/transliterators/archaic_hirakatas.rb
Overview
Transliterator for archaic_hirakatas
Instance Method Summary collapse
-
#call(input_chars) ⇒ Enumerable<Char>
Replaces archaic kana (hentaigana) with their modern equivalents.
-
#initialize(_options = {}) ⇒ Transliterator
constructor
Initialize the transliterator with options.
Constructor Details
#initialize(_options = {}) ⇒ Transliterator
Initialize the transliterator with options
307 308 309 310 |
# File 'lib/yosina/transliterators/archaic_hirakatas.rb', line 307 def initialize( = {}) # Options currently unused for archaic_hirakatas transliterator super() end |
Instance Method Details
#call(input_chars) ⇒ Enumerable<Char>
Replaces archaic kana (hentaigana) with their modern equivalents.
316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 |
# File 'lib/yosina/transliterators/archaic_hirakatas.rb', line 316 def call(input_chars) offset = 0 result = input_chars.filter_map do |char| replacement = ARCHAIC_HIRAKATAS_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 |