Class: Yosina::Transliterators::IvsSvsBase::Transliterator

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

Overview

Main IVS/SVS base transliterator

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Transliterator

Initialize the transliterator with options

Parameters:

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

    Configuration options

Options Hash (options):

  • :mode (String)

    The mode of operation (“ivs-or-svs”, “base”). Defaults to “base”.

    • “ivs-or-svs”: Add IVS/SVS selectors to kanji characters

    • “base”: Remove IVS/SVS selectors to get base characters

  • :drop_selectors_altogether (Boolean)

    Whether to drop all selectors when mode is “base”. Defaults to false.

  • :charset (String)

    The charset to use for base mappings (“unijis_90” or “unijis_2004”). Defaults to “unijis_2004”.

  • :prefer_svs (Boolean)

    When mode is “ivs-or-svs”, prefer SVS over IVS if both exist. Defaults to false.



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 130

def initialize(options = {})
  super()
  @mode = options[:mode] || 'base'
  @drop_selectors_altogether = options[:drop_selectors_altogether] || false
  @charset = options[:charset] || 'unijis_2004'
  @prefer_svs = options[:prefer_svs] || false

  @inner = if @mode == 'ivs-or-svs'
             ForwardTransliterator.new(
               IvsSvsBaseData.get_base_to_variants_mappings(@charset),
               @prefer_svs
             )
           else
             ReverseTransliterator.new(
               IvsSvsBaseData.get_variants_to_base_mappings,
               @charset,
               @drop_selectors_altogether
             )
           end
end

Instance Attribute Details

#charsetObject (readonly)

Returns the value of attribute charset.



116
117
118
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 116

def charset
  @charset
end

#drop_selectors_altogetherObject (readonly)

Returns the value of attribute drop_selectors_altogether.



116
117
118
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 116

def drop_selectors_altogether
  @drop_selectors_altogether
end

#innerObject (readonly)

Returns the value of attribute inner.



116
117
118
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 116

def inner
  @inner
end

#modeObject (readonly)

Returns the value of attribute mode.



116
117
118
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 116

def mode
  @mode
end

#prefer_svsObject (readonly)

Returns the value of attribute prefer_svs.



116
117
118
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 116

def prefer_svs
  @prefer_svs
end

Instance Method Details

#call(input_chars) ⇒ Enumerable<Char>

Handle IVS/SVS sequences

Parameters:

  • input_chars (Enumerable<Char>)

    The characters to transliterate

Returns:

  • (Enumerable<Char>)

    The transliterated characters



155
156
157
# File 'lib/yosina/transliterators/ivs_svs_base.rb', line 155

def call(input_chars)
  @inner.call(input_chars)
end