class MiddleSquid::Runner

Used internally to start the configured adapter and the internal HTTP server. The handler passed to {Builder#run} will be called in this context.

@see Builder Configuration DSL @see CLI#start middle_squid start command

Attributes

server[R]

Returns the internal HTTP server.

@return [Server]

Public Class Methods

new(builder) click to toggle source

@raise [Error] if the handler is undefined

# File lib/middle_squid/runner.rb, line 17
def initialize(builder)
  raise Error, 'Invalid handler. Did you call Builder#run in your configuration file?' unless builder.handler

  define_singleton_method :_handler_wrapper, builder.handler

  builder.custom_actions.each {|name, body|
    define_singleton_method name, body
  }

  adapter = builder.adapter
  adapter.handler = method :_handler_wrapper

  @server = Server.new

  EM.run {
    adapter.start
    @server.start
  }
end