Ruby Goliath 应用程序实际上是如何启动的?

How do Ruby Goliath applications actually start?

这是歌利亚的例子:

require 'goliath'

class HelloWorld < Goliath::API
  def response(env)
    [200, {}, "hello world"]
  end
end

定义 class 和子 classing Goliath::API 如何导致 Web 服务器启动?这不应该只是定义一个class,而不是实际实例化和执行一个吗?

Goliath 使用 at_exit,与 Sinatra、Minitest 等不同

查看一些相关代码 here,其中强调了此技巧有时需要的额外处理。