class EvmClient::HttpClient
Attributes
host[RW]
port[RW]
proxy[RW]
ssl[RW]
uri[RW]
Public Class Methods
new(host, proxy = nil, log = false)
click to toggle source
Calls superclass method
EvmClient::Client::new
# File lib/evm_client/http_client.rb, line 7 def initialize(host, proxy = nil, log = false) super(log) uri = URI.parse(host) raise ArgumentError unless ['http', 'https'].include? uri.scheme @host = uri.host @port = uri.port @proxy = proxy @ssl = uri.scheme == 'https' @uri = URI("#{uri.scheme}://#{@host}:#{@port}#{uri.path}") end
Public Instance Methods
send_batch(batch)
click to toggle source
# File lib/evm_client/http_client.rb, line 37 def send_batch(batch) result = send_single(batch.to_json) result = JSON.parse(result) result.sort_by! { |c| c['id'] } end
send_single(payload)
click to toggle source
# File lib/evm_client/http_client.rb, line 19 def send_single(payload) if @proxy.present? _, p_username, p_password, p_host, p_port = @proxy.gsub(/(:|\/|@)/,' ').squeeze(' ').split http = ::Net::HTTP.new(@host, @port, p_host, p_port, p_username, p_password) else http = ::Net::HTTP.new(@host, @port) end if @ssl http.use_ssl = true end header = {'Content-Type' => 'application/json'} request = ::Net::HTTP::Post.new(uri, header) request.body = payload response = http.request(request) response.body end