From 3f2a1be0503bfbd635e05c32b0e195d77f508521 Mon Sep 17 00:00:00 2001 From: Patrik Ragnarsson Date: Thu, 23 Mar 2017 10:25:51 +0100 Subject: [PATCH] Do not blow up on Addressable::IDNA::PunycodeBigOutput Related to #112. --- lib/twingly/url.rb | 2 ++ spec/lib/twingly/url_spec.rb | 3 +++ 2 files changed, 5 insertions(+) diff --git a/lib/twingly/url.rb b/lib/twingly/url.rb index 328078e..8aeb55c 100644 --- a/lib/twingly/url.rb +++ b/lib/twingly/url.rb @@ -1,3 +1,4 @@ +require "addressable/idna" require "addressable/uri" require "public_suffix" @@ -14,6 +15,7 @@ class URL CUSTOM_PSL = PublicSuffixList.with_punycoded_names ENDS_WITH_SLASH = /\/+$/ ERRORS_TO_EXTEND = [ + Addressable::IDNA::PunycodeBigOutput, Addressable::URI::InvalidURIError, PublicSuffix::DomainInvalid, ] diff --git a/spec/lib/twingly/url_spec.rb b/spec/lib/twingly/url_spec.rb index 1054c00..dbf7c60 100644 --- a/spec/lib/twingly/url_spec.rb +++ b/spec/lib/twingly/url_spec.rb @@ -43,6 +43,9 @@ def invalid_urls # https://github.com/sporkmonger/addressable/issues/224 "http://some_site.net%C2", "http://+%D5d.some_site.net", + + # Triggers Addressable::IDNA::PunycodeBigOutput + "http://40world-many.ru&passwd=pUXFGc0LS5&subject=%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0+%D0%BA%D0%B0%D1%80%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE+%D0%B2%D0%B0%D0%BB%D0%B0&commit=Predict&complex=true&complex=false&membrane=false&coil=false&msa_control=all&secStructPred=true&secStructPred=false&falseRate=5&output=opnone&modeller=&seqalign=yes&database=PfamA&eval=0.01&iterations=5&domssea=yes&secpro=yes&pp=yes", ] end