class MosEisley::HTTPClient
Public Class Methods
post_form(url:, params: nil, head: nil, &block)
click to toggle source
# File lib/http-client/client.rb, line 6 def self.post_form(url:, params: nil, head: nil, &block) if EM.reactor_running? MosEisley.logger.debug("POSTing form to #{url}") MosEisley::HTTPClient.request(url: url, head: head, body: params, &block) else MosEisley.logger.debug('Starting reactor...') EM.run do MosEisley.logger.debug("POSTing form to #{url}") MosEisley::HTTPClient.request(url: url, head: head, body: params, stop: true, &block) end end end
post_json(url:, params: nil, body: nil, head: {}, &block)
click to toggle source
# File lib/http-client/client.rb, line 19 def self.post_json(url:, params: nil, body: nil, head: {}, &block) head['Content-Type'] = 'application/json; charset=utf-8' body = S3PO.json_with_object(params) if params if EM.reactor_running? MosEisley.logger.debug("POSTing JSON to: #{url}") MosEisley::HTTPClient.request(url: url, head: head, body: body, &block) else MosEisley.logger.debug('Starting reactor...') EM.run do MosEisley.logger.debug("POSTing JSON to #{url}") MosEisley::HTTPClient.request(url: url, head: head, body: body, stop: true, &block) end end end
request(url:, head: nil, body:, stop: false, &block)
click to toggle source
# File lib/http-client/client.rb, line 34 def self.request(url:, head: nil, body:, stop: false, &block) http = EM::HttpRequest.new(url).post(body: body, head: head) http.errback do MosEisley.logger.error('HTTP error') if stop EM.stop MosEisley.logger.debug('Stopped reactor.') end end http.callback do block.call(http) if block_given? if stop EM.stop MosEisley.logger.debug('Stopped reactor.') end end end