1

我记得这个问题以前出现过,但我找不到答案。

我需要这样的文件:

#lib/tm/agent/server.rb
require 'tm/agent/server'

而且,在没有显式调用 Listen 类的情况下,它initialize会被执行:

module Tm
  module Agent
    module Server

      require 'goliath'

      class Listen < Goliath::API
        def initialize
          puts "WHAT"
        end
        def response(env)
          [200, {}, "Hello World"]
        end
      end

    end #end Server
  end #end Agent
end #end Tm

如何避免在 require 上初始化类?

4

1 回答 1

2

这是因为 Goliath 服务器中的一个钩子会在您直接运行脚本时自动启动服务器——这不是 Ruby 的正常特性。

为了避免它,不要调用require 'goliath',而是使用require 'goliath/api'

于 2012-10-17T03:15:40.747 回答