2012-10-17 9 views
1

나는이 문제가 전에 온 것을 기억하지만 대답을 찾을 수 없습니다. 그 initialize이 실행됩니다 명시 적으로 들어 클래스를 호출하지 않고,Ruby 기본 클래스 작업 후 요구

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

그리고 :

나는 파일이 방법을 필요로

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 

가 어떻게 요구에 클래스를 초기화하지 않도록합니까?

+0

아마도 도움이 될 것입니다. http://stackoverflow.com/questions/3745252/require-file-without-executing-code – halfelf

답변

2

이것은 스크립트를 직접 실행할 때 자동으로 서버를 시작하는 Goliath 서버의 훅 때문입니다. 이는 Ruby의 일반적인 기능이 아닙니다.

전화를 피하려면 require 'goliath'으로 전화하지 말고 대신 require 'goliath/api'을 사용하십시오.

+0

일부 라이브러리는 이런 식으로 행동해야합니다. – Istvan