延々とページを取得しようとするスクリプト

ちょっとした用事で作ったスクリプト
正常なレスポンスを返すまでひたすらリクエストを送る。
異様に重くてまともに接続できないサーバーで、ひたすらリロードを押す手間が省ける。

require 'mechanize'

class Downloader
  def initialize(options={})
    @retry = options[:retry] || 1
    @interval = options[:interval] || 0
    @agent = Mechanize.new
  end

  def get(uri)
    @retry.times do |n|
      sleep(@interval)
      begin
        puts "try #{n} for #{uri}"
        return @agent.get(uri)
      rescue Mechanize::ResponseCodeError
        # retry
      rescue Errno::ETIMEDOUT
        # retry
      end
    end
  end
end