lib/addressable/idna/native.rb in addressable-2.3.6 vs lib/addressable/idna/native.rb in addressable-2.3.7
- old
+ new
@@ -19,25 +19,37 @@
require "idn"
module Addressable
module IDNA
def self.punycode_encode(value)
- IDN::Punycode.encode(value)
+ IDN::Punycode.encode(value.to_s)
end
def self.punycode_decode(value)
- IDN::Punycode.decode(value)
+ IDN::Punycode.decode(value.to_s)
end
def self.unicode_normalize_kc(value)
- IDN::Stringprep.nfkc_normalize(value)
+ IDN::Stringprep.nfkc_normalize(value.to_s)
end
def self.to_ascii(value)
- IDN::Idna.toASCII(value)
+ value.to_s.split('.', -1).map do |segment|
+ if segment.size > 0
+ IDN::Idna.toASCII(segment)
+ else
+ ''
+ end
+ end.join('.')
end
def self.to_unicode(value)
- IDN::Idna.toUnicode(value)
+ value.to_s.split('.', -1).map do |segment|
+ if segment.size > 0
+ IDN::Idna.toUnicode(segment)
+ else
+ ''
+ end
+ end.join('.')
end
end
end