Class: EacEnvs::Http::Rspec::EchoServer

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_envs/http/rspec/echo_server.rb,
lib/eac_envs/http/rspec/echo_server/webrick_servlet.rb,
lib/eac_envs/http/rspec/echo_server/request_processor.rb

Defined Under Namespace

Classes: RequestProcessor, WebrickServlet

Constant Summary collapse

HOSTNAME =
'localhost'
SCHEMES =
{
  http: { Port: 8080 },
  https: { Port: 8443, SSLEnable: true, SSLCertName: [['CN', HOSTNAME]] }
}.freeze

Instance Method Summary collapse

Instance Method Details

#on_active(&block) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/eac_envs/http/rspec/echo_server.rb', line 29

def on_active(&block)
  servlet = webrick_servlet
  ::Thread.abort_on_exception = true
  servlet_thread = ::Thread.new { servlet.start }
  begin
    sleep 0.001 while servlet.status != :Running
    block.call
  ensure
    servlet.shutdown
    servlet_thread.join
  end
end

#root_urlObject



42
43
44
45
46
47
48
# File 'lib/eac_envs/http/rspec/echo_server.rb', line 42

def root_url
  ::Addressable::URI.new(
    scheme: scheme.to_s,
    host: ::EacEnvs::Http::Rspec::EchoServer::HOSTNAME,
    port: webrick_options.fetch(:Port)
  )
end