Class: Yosina::Transliterators::SmallHirakatas::Transliterator

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

Overview

Transliterator for small_hirakatas

Instance Method Summary collapse

Constructor Details

#initialize(_options = {}) ⇒ Transliterator

Initialize the transliterator with options

Parameters:

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

    Configuration options (currently unused)



74
75
76
77
# File 'lib/yosina/transliterators/small_hirakatas.rb', line 74

def initialize(_options = {})
  # Options currently unused for small_hirakatas transliterator
  super()
end

Instance Method Details

#call(input_chars) ⇒ Enumerable<Char>

Replaces small hiragana/katakana with their ordinary-sized equivalents.

Parameters:

  • input_chars (Enumerable<Char>)

    The characters to transliterate

Returns:

  • (Enumerable<Char>)

    The transliterated characters



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/yosina/transliterators/small_hirakatas.rb', line 83

def call(input_chars)
  offset = 0

  result = input_chars.filter_map do |char|
    replacement = SMALL_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