class Spacejam::HTTPCheck

Attributes

body[RW]
reason[RW]
response_code[RW]
result[RW]
url[RW]

Public Class Methods

new(opts={}) click to toggle source
# File lib/spacejam/http_check.rb, line 4
def initialize(opts={})
  if opts.is_a?(String)
    opts = {
      url: opts
    }
  end

  opts = {
    response_code: 200,
    body: nil
  }.merge(opts)

  @url = opts[:url]
  @response_code = to_regexp(opts[:response_code])
  @body = to_regexp(opts[:body])
end

Public Instance Methods

online?() click to toggle source
# File lib/spacejam/http_check.rb, line 21
def online?
  @reason = nil
  @result = Curl::Easy.perform(@url)

  if @response_code && @response_code.match(@result.response_code.to_s) == nil
    @reason = :response_code
    return false
  end

  if @body && @result.body_str.match(@body) == nil
    @reason = :body
    return false
  end

  true
rescue
  @reason = :error
  false
end

Protected Instance Methods

to_regexp(s) click to toggle source
# File lib/spacejam/http_check.rb, line 42
def to_regexp(s)
  return if !s
  if ! s.is_a?(Regexp)
    s = Regexp.compile(s.to_s)
  end
  s
end