Class: Yosina::Transliterators::ArchaicHirakatas::Transliterator

Inherits:
BaseTransliterator show all
Defined in:
lib/yosina/transliterators/archaic_hirakatas.rb

Overview

Transliterator for archaic_hirakatas

Instance Method Summary collapse

Constructor Details

#initialize(_options = {}) ⇒ Transliterator

Initialize the transliterator with options

Parameters:

  • _options (Hash) (defaults to: {})

    Configuration options (currently unused)



307
308
309
310
# File 'lib/yosina/transliterators/archaic_hirakatas.rb', line 307

def initialize(_options = {})
  # 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.

Parameters:

  • input_chars (Enumerable<Char>)

    The characters to transliterate

Returns:

  • (Enumerable<Char>)

    The transliterated characters



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