module Ronin::Support::Encoding::Punycode

Contains methods for encoding/decoding [punycode] encoded Strings.

[punycode]: en.wikipedia.org/wiki/Punycode

## Core-Ext Methods

@api public

@since 1.0.0

Public Class Methods

decode(data) click to toggle source

Decodes a [punycode] String back into unicode.

[punycode]: en.wikipedia.org/wiki/Punycode

@param [String] data

The punycode String to decode.

@return [String]

The decoded unicode String.

@example

Encoding::Punycode.decode("xn--8ws00zhy3a")
# => "詹姆斯"
# File lib/ronin/support/encoding/punycode.rb, line 73
def self.decode(data)
  Addressable::IDNA.to_unicode(data)
end
encode(data) click to toggle source

Encodes a unicode String into [punycode].

[punycode]: en.wikipedia.org/wiki/Punycode

@param [String] data

The unicode String to encode.

@return [String]

The punycode String.

@example

Encoding::Punycode.encode("詹姆斯")
# => "xn--8ws00zhy3a"
# File lib/ronin/support/encoding/punycode.rb, line 54
def self.encode(data)
  Addressable::IDNA.to_ascii(data)
end