module Superhosting::Patches::String::Punycode

Public Instance Methods

punycode() click to toggle source
# File lib/superhosting/patches/string/punycode.rb, line 5
def punycode
  parts = self.split('.').map do |label|
    encoded = ::Punycode.encode(Unicode::normalize_KC(Unicode::downcase(label)))
    if encoded =~ /-$/
      encoded.chop!
    else
      'xn--' + encoded
    end
  end
  parts.join('.')
end