提交 9ea34ad3 编写于 作者: N Norman Clarke

Remove "_codepoints" from compose/decompose

上级 c973161c
......@@ -153,7 +153,7 @@ def normalize(form = nil)
# 'é'.length # => 2
# 'é'.mb_chars.decompose.to_s.length # => 3
def decompose
chars(Unicode.decompose_codepoints(:canonical, Unicode.u_unpack(@wrapped_string)).pack('U*'))
chars(Unicode.decompose(:canonical, Unicode.u_unpack(@wrapped_string)).pack('U*'))
end
# Performs composition on all the characters.
......@@ -162,7 +162,7 @@ def decompose
# 'é'.length # => 3
# 'é'.mb_chars.compose.to_s.length # => 2
def compose
chars(Unicode.compose_codepoints(Unicode.u_unpack(@wrapped_string)).pack('U*'))
chars(Unicode.compose(Unicode.u_unpack(@wrapped_string)).pack('U*'))
end
# Returns the number of grapheme clusters in the string.
......
......@@ -143,7 +143,7 @@ def reorder_characters(codepoints)
end
# Decompose composed characters to the decomposed form.
def decompose_codepoints(type, codepoints)
def decompose(type, codepoints)
codepoints.inject([]) do |decomposed, cp|
# if it's a hangul syllable starter character
if HANGUL_SBASE <= cp and cp < HANGUL_SLAST
......@@ -156,7 +156,7 @@ def decompose_codepoints(type, codepoints)
decomposed.concat ncp
# if the codepoint is decomposable in with the current decomposition type
elsif (ncp = database.codepoints[cp].decomp_mapping) and (!database.codepoints[cp].decomp_type || type == :compatability)
decomposed.concat decompose_codepoints(type, ncp.dup)
decomposed.concat decompose(type, ncp.dup)
else
decomposed << cp
end
......@@ -164,7 +164,7 @@ def decompose_codepoints(type, codepoints)
end
# Compose decomposed characters to the composed form.
def compose_codepoints(codepoints)
def compose(codepoints)
pos = 0
eoa = codepoints.length - 1
starter_pos = 0
......@@ -286,13 +286,13 @@ def normalize(string, form=nil)
codepoints = u_unpack(string)
case form
when :d
reorder_characters(decompose_codepoints(:canonical, codepoints))
reorder_characters(decompose(:canonical, codepoints))
when :c
compose_codepoints(reorder_characters(decompose_codepoints(:canonical, codepoints)))
compose(reorder_characters(decompose(:canonical, codepoints)))
when :kd
reorder_characters(decompose_codepoints(:compatability, codepoints))
reorder_characters(decompose(:compatability, codepoints))
when :kc
compose_codepoints(reorder_characters(decompose_codepoints(:compatability, codepoints)))
compose(reorder_characters(decompose(:compatability, codepoints)))
else
raise ArgumentError, "#{form} is not a valid normalization variant", caller
end.pack('U*')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册