Revision: 30393
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 13, 2010 02:51 by viatropos
Initial Code
# return 4 urls, with and without trailing slash, with and without www
# useful for matching urls passed as params into some function,
# "does this url exist?"... need to make sure you check permutations
def url_permutations(url)
url, params = url.split("?")
# without_trailing_slash, with www
a = url.gsub(/\/$/, "").gsub(/http(s)?:\/\/([^\/]+)/) do |match|
protocol = "http#{$1.to_s}"
domain = $2
domain = "www.#{domain}" if domain.split(".").length < 3 # www.google.com == 3, google.com == 2
"#{protocol}://#{domain}"
end
# with_trailing_slash, with www
b = "#{a}/"
# without_trailing_slash, without www
c = a.gsub(/http(s)?:\/\/www\./, "http#{$1.to_s}://")
# with_trailing_slash, without www
d = "#{c}/"
[a, b, c, d].map { |url| "#{url}?#{params}"}
end
puts url_permutations("http://google.com/search?q=http://google.com").inspect
#=> [
"http://www.google.com/search?q=http://google.com",
"http://www.google.com/search/?q=http://google.com",
"http://google.com/search?q=http://google.com",
"http://google.com/search/?q=http://google.com"
]
Initial URL
regular-expression-to-create-url-permutations-in-ruby
Initial Description
Initial Title
Regular Expression to Create URL Permutations in Ruby
Initial Tags
url, ruby
Initial Language
Ruby