Class: Yosina::Transliterators::RomanNumerals::Transliterator

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

Overview

Transliterator for roman numerals

Instance Method Summary collapse

Constructor Details

#initialize(_options = nil) ⇒ Transliterator

Initialize the transliterator



12
13
14
# File 'lib/yosina/transliterators/roman_numerals.rb', line 12

def initialize(_options = nil)
  super()
end

Instance Method Details

#call(input_chars) ⇒ Enumerable<Char>

Convert roman numeral characters to ASCII equivalents

Parameters:

  • input_chars (Enumerable<Char>)

    The characters to transliterate

Returns:

  • (Enumerable<Char>)

    The transliterated characters



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/yosina/transliterators/roman_numerals.rb', line 20

def call(input_chars)
  offset = 0

  Chars.enum do |y|
    input_chars.each do |char|
      replacement = RomanNumerals::ROMAN_NUMERAL_MAPPINGS[char.c]
      if replacement
        replacement.each do |c|
          y << Char.new(c: c, offset: offset, source: char)
          offset += c.length
        end
      else
        y << Char.new(c: char.c, offset: offset, source: char)
        offset += char.c.length
      end
    end
  end
end