Class: Yosina::Transliterators::Spaces::Transliterator

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

Overview

Transliterator for spaces

Instance Method Summary collapse

Constructor Details

#initialize(_options = {}) ⇒ Transliterator

Initialize the transliterator with options

Parameters:

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

    Configuration options (currently unused)



36
37
38
39
# File 'lib/yosina/transliterators/spaces.rb', line 36

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

Instance Method Details

#call(input_chars) ⇒ Enumerable<Char>

Replace various space characters with plain whitespace

Parameters:

  • input_chars (Enumerable<Char>)

    The characters to transliterate

Returns:

  • (Enumerable<Char>)

    The transliterated characters



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/yosina/transliterators/spaces.rb', line 45

def call(input_chars)
  offset = 0

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