1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
require 'java'
module UNF
class Normalizer
def initialize()
@normalizer = java.text.Normalizer
end
def normalize(string, normalization_form)
@normalizer.normalize(string, form(normalization_form))
end
private
def form(symbol)
case symbol
when :nfc
@normalizer::Form::NFC
when :nfd
@normalizer::Form::NFD
when :nfkc
@normalizer::Form::NFKC
when :nfkd
@normalizer::Form::NFKD
else
raise ArgumentError, "unknown normalization form: #{symbol.inspect}"
end
end
end
end
|