class GenesisCollector::SimpleHTTP
Public Class Methods
new(host, headers: {}, timeout: 10)
click to toggle source
# File lib/genesis_collector/simple_http.rb, line 8 def initialize(host, headers: {}, timeout: 10) @host = host @headers = {'User-Agent' => GenesisCollector::USER_AGENT}.merge! headers @timeout = timeout end
Public Instance Methods
patch(endpoint, payload = nil, headers = {})
click to toggle source
# File lib/genesis_collector/simple_http.rb, line 18 def patch(endpoint, payload = nil, headers = {}) verb(endpoint, payload, headers) { |uri| Net::HTTP::Patch.new(uri) } end
post(endpoint, payload = nil, headers = {})
click to toggle source
# File lib/genesis_collector/simple_http.rb, line 14 def post(endpoint, payload = nil, headers = {}) verb(endpoint, payload, headers) { |uri| Net::HTTP::Post.new(uri) } end
Private Instance Methods
add_headers(request, headers)
click to toggle source
# File lib/genesis_collector/simple_http.rb, line 35 def add_headers(request, headers) headers.merge!(@headers) headers.each do |k, v| request[k] = v end request end
verb(endpoint, payload, headers) { |request_uri| ... }
click to toggle source
# File lib/genesis_collector/simple_http.rb, line 24 def verb(endpoint, payload, headers) uri = URI.parse("#{@host}#{endpoint}") http = Net::HTTP.new(uri.host, uri.port) http.open_timeout = http.read_timeout = http.ssl_timeout = @timeout http.use_ssl = true if @host.start_with?('https') request = yield uri.request_uri request.body = JSON.dump(payload) unless payload.nil? request = add_headers(request, headers) http.request(request) end