Module: Yosina

Defined in:
lib/yosina.rb,
lib/yosina/char.rb,
lib/yosina/chars.rb,
lib/yosina/recipes.rb,
lib/yosina/version.rb,
lib/yosina/transliterator.rb,
lib/yosina/transliterators.rb,
lib/yosina/transliterators/spaces.rb,
lib/yosina/transliterators/hyphens.rb,
lib/yosina/transliterators/combined.rb,
lib/yosina/transliterators/radicals.rb,
lib/yosina/transliterators/hira_kata.rb,
lib/yosina/transliterators/hyphens_data.rb,
lib/yosina/transliterators/ivs_svs_base.rb,
lib/yosina/transliterators/combined_data.rb,
lib/yosina/transliterators/kanji_old_new.rb,
lib/yosina/transliterators/roman_numerals.rb,
lib/yosina/transliterators/hira_kata_table.rb,
lib/yosina/transliterators/small_hirakatas.rb,
lib/yosina/transliterators/archaic_hirakatas.rb,
lib/yosina/transliterators/ivs_svs_base_data.rb,
lib/yosina/transliterators/circled_or_squared.rb,
lib/yosina/transliterators/jisx0201_and_alike.rb,
lib/yosina/transliterators/roman_numerals_data.rb,
lib/yosina/transliterators/historical_hirakatas.rb,
lib/yosina/transliterators/hira_kata_composition.rb,
lib/yosina/transliterators/prolonged_sound_marks.rb,
lib/yosina/transliterators/circled_or_squared_data.rb,
lib/yosina/transliterators/ideographic_annotations.rb,
lib/yosina/transliterators/japanese_iteration_marks.rb,
lib/yosina/transliterators/mathematical_alphanumerics.rb

Overview

Main module for Yosina text transliteration library

Defined Under Namespace

Modules: Chars, Transliterators Classes: BaseTransliterator, ChainedTransliterator, Char, Error, TransliterationError, TransliterationRecipe, TransliteratorConfig, TransliteratorConfigListBuilder, TransliteratorFactoryError

Constant Summary collapse

VERSION =
'2.0.0'

Class Method Summary collapse

Class Method Details

.build_transliterator_configs_from_recipe(recipe) ⇒ Array<Array>

Build an array of transliterator configs from a recipe object

Parameters:

Returns:

  • (Array<Array>)

    Array of transliterator configurations



412
413
414
# File 'lib/yosina/recipes.rb', line 412

def self.build_transliterator_configs_from_recipe(recipe)
  recipe.build_transliterator_configs
end

.make_transliterator(configs_or_recipe) ⇒ Proc

Frontend convenience function to create a string-to-string transliterator from a recipe or a list of configs.

Parameters:

Returns:

  • (Proc)

    A transliterator function that takes a string and returns a string



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/yosina.rb', line 22

def self.make_transliterator(configs_or_recipe)
  configs = case configs_or_recipe
            when TransliterationRecipe
              configs_or_recipe.build_transliterator_configs.map do |config_array|
                TransliteratorConfig.new(config_array[0], config_array[1])
              end
            when Array
              configs_or_recipe.map do |item|
                case item
                when String, Symbol
                  TransliteratorConfig.new(item)
                when Array
                  TransliteratorConfig.new(item[0], item[1])
                else
                  item
                end
              end
            else
              raise ArgumentError, 'configs_or_recipe must be Array or TransliterationRecipe'
            end

  transliterator = create_chained_transliterator(configs)

  proc do |input|
    chars = Chars.build_char_array(input)
    result_chars = transliterator.call(chars)
    result_chars.to_s
  end
end