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

要求時にクラスを初期化しないようにするにはどうすればよいですか?

4

1 に答える 1

2

これは、スクリプトを直接実行すると自動的にサーバーを起動する Goliath サーバーのフックによるものです。これは Ruby の通常の機能ではありません。

これを避けるには、 を呼び出さずに代わりにrequire 'goliath'使用require 'goliath/api'します。

于 2012-10-17T03:15:40.747 に答える