Module: Superhosting::Patches::String::Punycode

Defined in:
lib/superhosting/patches/string/punycode.rb

Instance Method Summary collapse

Instance Method Details

#punycodeObject



5
6
7
8
9
10
11
12
13
14
15
# 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