class Pakyow::Processes::Proxy::Server

Public Class Methods

new(port:, host:, forwarded:) click to toggle source
# File lib/pakyow/processes/proxy.rb, line 40
def initialize(port:, host:, forwarded:)
  @port, @host, @forwarded = port, host, forwarded
  @destination = "#{@host}:#{@port}"
  @client = Async::HTTP::Client.new(
    Async::HTTP::Endpoint.parse(
      File.join("http://#{@destination}")
    )
  )
end

Public Instance Methods

call(request, total_waits = 0) click to toggle source
# File lib/pakyow/processes/proxy.rb, line 50
def call(request, total_waits = 0)
  @client.call(request)
rescue
  if total_waits == 30
    Async::HTTP::Protocol::Response.new(
      nil, 404, [], Async::HTTP::Body::Buffered.wrap(
        StringIO.new("app did not respond")
      )
    )
  else
    Async::Task.current.sleep 0.5
    call(request, total_waits + 1)
  end
end