class Onebox::StatusCheck

Public Class Methods

new(url, options = Onebox.options) click to toggle source
# File lib/onebox/status_check.rb, line 5
def initialize(url, options = Onebox.options)
  @url = url
  @options = options
  @status = -1
end

Public Instance Methods

human_status() click to toggle source
# File lib/onebox/status_check.rb, line 20
def human_status
  case status
  when 0
    :connection_error
  when 200..299
    :success
  when 400..499
    :client_error
  when 500..599
    :server_error
  else
    :unknown_error
  end
end
ok?() click to toggle source
# File lib/onebox/status_check.rb, line 11
def ok?
  status > 199 && status < 300
end
status() click to toggle source
# File lib/onebox/status_check.rb, line 15
def status
  check if @status == -1
  @status
end

Private Instance Methods

check() click to toggle source
# File lib/onebox/status_check.rb, line 37
def check
  res = URI.open(@url, read_timeout: (@options.timeout || Onebox.options.timeout))
  @status = res.status.first.to_i
rescue OpenURI::HTTPError => e
  @status = e.io.status.first.to_i
rescue Timeout::Error, Errno::ECONNREFUSED, Net::HTTPError
  @status = 0
end