URLが存在するかどうかを知りたかったので、URI#exists?
を書きました。
.rb
module URI
def exists?
req = Net::HTTP.new(host, port)
req.use_ssl = true if scheme == 'https'
res = req.request_head(path)
return URI(res['location']).exists? if %w(301 302).include?(res.code)
res.code == '200'
end
end
こちらのコードに301
,302
の場合に追尾する機能を追加したものです。
https://stackoverflow.com/questions/5908017/check-if-url-exists-in-ruby
(stackoverflowの回答にも追加したかったけどclose
されててできなかったので、reopen
権限ある人がいたらお願いします。)