class KoreanSeparator

Public Class Methods

new(string) click to toggle source
# File lib/to_sep/korean_separator.rb, line 6
def initialize string
  @string = string
end
split(string) click to toggle source
# File lib/to_sep/korean_separator.rb, line 2
def self.split string
  self.new(string).split
end

Public Instance Methods

final_consonant() click to toggle source

종성

# File lib/to_sep/korean_separator.rb, line 56
def final_consonant 
  [" ","ㄱ","ㄲ","ㄳ","ㄴ","ㄵ","ㄶ","ㄷ","ㄹ","ㄺ",
   "ㄻ","ㄼ","ㄽ","ㄾ","ㄿ","ㅀ","ㅁ","ㅂ","ㅄ","ㅅ",
   "ㅆ","ㅇ","ㅈ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"]
end
initial_consonant() click to toggle source

초성

# File lib/to_sep/korean_separator.rb, line 45
def initial_consonant
  ["ㄱ","ㄲ","ㄴ","ㄷ","ㄸ","ㄹ","ㅁ","ㅂ","ㅃ","ㅅ","ㅆ","ㅇ","ㅈ","ㅉ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"]
end
offset() click to toggle source
# File lib/to_sep/korean_separator.rb, line 40
def offset
  "가".to_unicode
end
sep_by(ch) click to toggle source
# File lib/to_sep/korean_separator.rb, line 20
def sep_by ch
  unicode = ch.to_unicode
  i = initial_consonant[ (unicode-offset) / 
                  (vowel.length * final_consonant.length) ] 
  v = vowel[((unicode-offset) %
                    (vowel.length * final_consonant.length)) /
                        final_consonant.length ]
  f = final_consonant[ (unicode-offset) % final_consonant.length ]
 
  [i, v, f].join.strip
end
split() click to toggle source
# File lib/to_sep/korean_separator.rb, line 10
def split
  @string.split('').inject("") do |string, ch|
    if ch.korean?
      string += (sep_by ch)
    else
      string += ch
    end
  end
end
unicode_composite(u_initial_consonant, u_vowel, u_final_consonant) click to toggle source
# File lib/to_sep/korean_separator.rb, line 32
def unicode_composite u_initial_consonant, u_vowel, u_final_consonant
  i = initial_consonant.index u_initial_consonant.unicode_chr
  v = vowel.index u_vowel.unicode_chr
  f = final_consonant.index u_final_consonant.unicode_chr
  unicode = offset  +  (i * 588) + (v * 28) + (f)
  unicode.unicode_chr
end
vowel() click to toggle source

중성

# File lib/to_sep/korean_separator.rb, line 50
def vowel
  ["ㅏ","ㅐ","ㅑ","ㅒ","ㅓ","ㅔ","ㅕ","ㅖ","ㅗ","ㅘ",
   "ㅙ","ㅚ","ㅛ","ㅜ","ㅝ","ㅞ","ㅟ","ㅠ","ㅡ","ㅢ","ㅣ"]
end