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 31 32 33 34 35 36 37 38
|
require 'unf/version'
module UNF
autoload :Normalizer, 'unf/normalizer'
end
class String
ascii_only =
if method_defined?(:ascii_only?)
'ascii_only?'
else
'/[^\x00-\x7f]/ !~ self'
end
# :method: to_nfc
# Converts the string to NFC.
# :method: to_nfd
# Converts the string to NFD.
# :method: to_nfkc
# Converts the string to NFKC.
# :method: to_nfkd
# Converts the string to NFKD.
[:nfc, :nfd, :nfkc, :nfkd].each { |form|
eval %{
def to_#{form.to_s}
if #{ascii_only}
self
else
UNF::Normalizer.normalize(self, #{form.inspect})
end
end
}
}
end unless String.method_defined?(:to_nfc)
|