module ConvJaChar
conv_ja_char does not accept Kanji char currently.
Constants
- DOUBLE_CONSONANT_SOUND
- KATANA_TO_HEBON_FORM
- KATANA_TO_KUNREI_FORM
- SMALL_KANA_FOR_CONTRACTED_SOUND
- VERSION
Public Class Methods
to_romaji(str, option)
click to toggle source
# File lib/conv_ja_char.rb, line 17 def to_romaji(str, option) return str unless str.nil? if str == '' return str end @opt = '' set_option(option) binding.pry if ConvJaChar::CharTypeCheck::kanji?(str) != nil p "there seems to be Kanji char in #{str}. conv_ja_char does not accept Kanji char currently." return str end binding.pry @t = set_char_table(@opt) @chars = ConvJaChar::Normalization.kana(str).split(//u) @romaji = '' @pos = 0 while @pos < @chars.size @c = @chars[@pos] if @c == (' ' || '$' || '-' || '\'') @romaji += @c @pos += 1 next end if ConvJaChar::CharTypeCheck::symbol?(@c) != nil @romaji += @c @pos += 1 next end @c_next = '' set_next_char case @c when 'ン' process_nasal_sound_change next when 'ッ' process_sound_change_to_double_consonant next when 'ウ','キ','ギ','ク','グ','シ','ジ','チ','ヂ','テ','デ','ニ','ヒ','ビ','ピ','フ','ミ','リ','ヴ' if @c_next.nil? process_normal_char next end if SMALL_KANA_FOR_CONTRACTED_SOUND.include?(@c_next) process_contracted_sound next else process_normal_char next end else process_normal_char end end @romaji end
Private Class Methods
process_contracted_sound()
click to toggle source
# File lib/conv_ja_char.rb, line 156 def process_contracted_sound # ex.:'キャ' s = @c + @c_next @romaji += @t[s] @pos += 2 end
process_nasal_sound_change(op)
click to toggle source
# File lib/conv_ja_char.rb, line 123 def process_nasal_sound_change(op) # ex.:'ン' s = @t[@c_next] case op when 'Hebon' if ['p','b','m'].include?(s[0]) @romaji += 'm' else @romaji += @t[@c] if ['a','i','u','e','o','y','n'].include?(s[0]) @romaji += '\'' end end when 'Kunrei' @romaji += @t[@c] if ['a','i','u','e','o','y','n'].include?(s[0]) @romaji += '\'' end end @pos += 1 end
process_normal_char()
click to toggle source
# File lib/conv_ja_char.rb, line 118 def process_normal_char @romaji += @t[@c] @pos += 1 end
process_sound_change_to_double_consonant()
click to toggle source
# File lib/conv_ja_char.rb, line 146 def process_sound_change_to_double_consonant # ex.:'ッ' r = @t[@c_next] if @c_next == DOUBLE_CONSONANT_SOUND || ['a','i','u','e','o','n',nil].include?(r[0]) || r.nil? @romaji += 'xtsu' else @romaji += r[0].slice(0,1) end @pos += 1 end
set_char_table(op)
click to toggle source
# File lib/conv_ja_char.rb, line 107 def set_char_table(op) case op when 'Hebon' ConvJaChar::KATANA_TO_HEBON_FORM when 'Kunrei' ConvJaChar::KATANA_TO_KUNREI_FORM else ConvJaChar::KATANA_TO_KUNREI_FORM end end
set_next_char()
click to toggle source
# File lib/conv_ja_char.rb, line 99 def set_next_char if (@pos + 1) < @chars.size @c_next = @chars[@pos+1] else @c_next = nil end end
set_option(option)
click to toggle source
# File lib/conv_ja_char.rb, line 88 def set_option(option) case option when 'Kunrei' @opt = 'Kunrei' when 'Hebon' @opt = 'Hebon' else @opt = 'Kunrei' end end