class Sunbro::Connection

Constants

MAX_RETRIES

Attributes

dhttp[R]
http[R]

Public Instance Methods

close() click to toggle source
# File lib/sunbro/connection.rb, line 33
def close
  @http.try(:close)
  @dhttp.try(:close)
rescue IOError
end
fetch_page(link, opts={}) click to toggle source
# File lib/sunbro/connection.rb, line 7
def fetch_page(link, opts={})
  conn = opts[:force_format] == (:dhtml || 'dhtml') ? dhttp : http
  tries = opts[:tries] || MAX_RETRIES
  sleep_interval = opts[:sleep] || 1

  page = Retryable.retryable(sleep: sleep_interval, tries: tries) do
    web_retry(opts) do
      conn.fetch_page(link, opts)
    end
  end
  page.discard_doc! unless page.valid?
  page
end
session() click to toggle source
# File lib/sunbro/connection.rb, line 21
def session
  @dhttp.try(:session)
end
web_retry(opts) { || ... } click to toggle source
# File lib/sunbro/connection.rb, line 39
def web_retry(opts)
  page, tries, sleep_interval = nil, opts[:tries], opts[:sleep]
  begin
    page = yield
    sleep(sleep_interval) unless page.valid?
  end until page.valid? || (tries -= 1).zero?
  page
end