Sha256: 066d9a849a807c5be67e33a306eb30440f2bd9d6eb6d6a883bdf1645fe64536a

Contents?: true

Size: 796 Bytes

Versions: 13

Compression:

Stored size: 796 Bytes

Contents

require 'net/https'

module Easymon
  class HttpCheck
    attr_accessor :url
    
    def initialize(url)
      self.url = url
    end 
    
    def check
      check_status = http_up?(url)
      if check_status
        message = "Up"
      else
        message = "Down"
      end
      [check_status, message]
    end
    
    private
      def http_up?(url)
        http_head(url).is_a?(Net::HTTPSuccess)
      rescue Exception
        false
      end

      def http_head(url)
        uri = URI.parse(url)

        http = Net::HTTP.new(uri.host, uri.port)
        http.use_ssl = uri.is_a?(URI::HTTPS)
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE
        http.open_timeout = 5
        http.read_timeout = 5

        http.request Net::HTTP::Head.new(uri.request_uri)
      end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
easymon-1.6.3 lib/easymon/checks/http_check.rb
easymon-1.6.2 lib/easymon/checks/http_check.rb
easymon-1.6.1 lib/easymon/checks/http_check.rb
easymon-1.5 lib/easymon/checks/http_check.rb
easymon-1.6.0 lib/easymon/checks/http_check.rb
easymon-1.4.2 lib/easymon/checks/http_check.rb
easymon-1.4.1 lib/easymon/checks/http_check.rb
easymon-1.4 lib/easymon/checks/http_check.rb
easymon-1.3 lib/easymon/checks/http_check.rb
easymon-1.2.6 lib/easymon/checks/http_check.rb
easymon-1.2.5 lib/easymon/checks/http_check.rb
easymon-1.2.4 lib/easymon/checks/http_check.rb
easymon-1.2.3 lib/easymon/checks/http_check.rb