Sha256: 2ba85377c713494f4aac1812a0f41873aa7c02d4667b71f149db21e89ffe7e45
Contents?: true
Size: 970 Bytes
Versions: 1
Compression:
Stored size: 970 Bytes
Contents
module LitmusPaper module Dependency class HTTP def initialize(uri, options = {}) @uri = uri @expected_content = Regexp.new(options.fetch(:content, '.*')) @method = options.fetch(:method, 'GET') end def available? response = _make_request _successful_response?(response) && _body_matches?(response) rescue Exception false end def _make_request uri = URI.parse(@uri) request = Net::HTTP.const_get(@method.capitalize).new(uri.normalize.path) request.set_form_data({}) Net::HTTP.start(uri.host, uri.port) do |http| http.request(request) end end def _successful_response?(response) response.is_a? Net::HTTPSuccess end def _body_matches?(response) (response.body =~ @expected_content) ? true : false end def to_s "Dependency::HTTP(#{@uri})" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
litmus_paper-0.0.3 | lib/litmus_paper/dependency/http.rb |