Module: TP2

Defined in:
lib/tp2.rb,
lib/tp2/errors.rb,
lib/tp2/logger.rb,
lib/tp2/server.rb,
lib/tp2/version.rb,
lib/tp2/connection.rb,
lib/tp2/rack_adapter.rb

Defined Under Namespace

Modules: RackAdapter Classes: Connection, Logger, ProtocolError, Server, UnsupportedHTTPVersionError

Constant Summary collapse

(
  "\n" +
  "         ooo\n" +
  "       oo\n" +
  "     o\n" +
  "   \\|/    TP2 - a modern web server for Ruby apps\n" +
  "   / \\       \n" +
  "  / x \\      https://github.com/noteflakes/tp2\n" +
  "⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺⎺\n"
)
VERSION =
'0.19.3'

Class Method Summary collapse

Class Method Details

.env(env = nil, &app) ⇒ Object



51
52
53
54
55
56
# File 'lib/tp2.rb', line 51

def env(env = nil, &app)
  return @env if !env && !app

  @env = env || {}
  @env[:app] = app if app
end

.run(env = {}, &app) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/tp2.rb', line 27

def run(env = {}, &app)
  if @in_run
    @env = env
    @env[:app] = app if app
    return
  end

  env ||= @env || {}
  begin
    @in_run = true
    machine = env[:machine] || UM.new
    machine.puts(env[:banner]) if env[:banner]

    env[:logger]&.info(message: "Running TP2 #{TP2::VERSION}, UringMachine #{UM::VERSION}, Ruby #{RUBY_VERSION}")

    server = Server.new(machine, env, &app)

    setup_signal_handling(machine, Fiber.current)
    server.run
  ensure
    @in_run = false
  end
end