module SimpleIDN
Borrowed from github.com/mmriis/simpleidn
Public Instance Methods
to_ascii(domain)
click to toggle source
Converts a UTF-8 unicode string to a punycode ACE string.
Example¶ ↑
SimpleIDN.to_ascii("møllerriis.com") => "xn--mllerriis-l8a.com"
# File lib/motion-markdown-it/common/simpleidn.rb, line 215 def to_ascii(domain) domain_array = domain.split(".") rescue [] return domain if domain_array.length == 0 out = [] i = 0 while i < domain_array.length s = domain_array[i] out << (s =~ /[^A-Z0-9\-*_]/i ? "xn--" + Punycode.encode(s) : s) i += 1 end return out.join(".") end
to_unicode(domain)
click to toggle source
Converts a punycode ACE string to a UTF-8 unicode string.
Example¶ ↑
SimpleIDN.to_unicode("xn--mllerriis-l8a.com") => "møllerriis.com"
# File lib/motion-markdown-it/common/simpleidn.rb, line 232 def to_unicode(domain) domain_array = domain.split(".") rescue [] return domain if domain_array.length == 0 out = [] i = 0 while i < domain_array.length s = domain_array[i] out << (s =~ /^xn\-\-/i ? Punycode.decode(s.gsub('xn--','')) : s) i += 1 end return out.join(".") end