Skip to content

Instantly share code, notes, and snippets.

@moskvin
Last active December 22, 2015 05:07
Show Gist options
  • Save moskvin/b6abfaaea8e0e5ad9234 to your computer and use it in GitHub Desktop.
Save moskvin/b6abfaaea8e0e5ad9234 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
require 'uri'
require 'addressable/uri'
module SiteUrlHelper
def self.site_url_valid? url
uri = URI.parse url
uri.kind_of? URI::HTTP
rescue URI::InvalidURIError
false
end
def self.get_printed_and_normalised url
uri = Addressable::URI.parse url
uri = Addressable::URI.parse "http://#{url}" unless uri.scheme
return nil unless self.site_url_valid? uri.normalized_site
[uri.hostname, uri.normalized_site]
end
end
@moskvin
Copy link
Author

moskvin commented Dec 22, 2015

2.1.2 :169 > SiteUrlHelper.get_printed_and_normalised "президент.рф"
 => ["президент.рф", "http://xn--d1abbgf6aiiy.xn--p1ai"]
2.1.2 :170 > SiteUrlHelper.get_printed_and_normalised "http://президент.рф"
 => ["президент.рф", "http://xn--d1abbgf6aiiy.xn--p1ai"]
2.1.2 :171 > SiteUrlHelper.get_printed_and_normalised "http://test.com"
 => ["test.com", "http://test.com"]
2.1.2 :172 > SiteUrlHelper.get_printed_and_normalised "http://www.test.com"
 => ["www.test.com", "http://www.test.com"]
2.1.2 :173 > SiteUrlHelper.get_printed_and_normalised "test.com"
 => ["test.com", "http://test.com"]
2.1.2 :174 > SiteUrlHelper.get_printed_and_normalised "goo.gl"
 => ["goo.gl", "http://goo.gl"]
2.1.2 :175 > SiteUrlHelper.get_printed_and_normalised "sibext.ru"
 => ["sibext.ru", "http://sibext.ru"]
2.1.2 :176 > SiteUrlHelper.get_printed_and_normalised "bad!"
 => nil

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment