Действия класса Ruby по умолчанию после require
Я помню, что эта проблема возникла раньше, но я не могу найти ответ.
Мне нужен файл таким образом:
#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
Как мне избежать инициализации класса по требованию?
1 ответ
Решение
Это связано с перехватом на сервере Голиафа, который автоматически запускает сервер, когда вы запускаете сценарий напрямую - это не обычная функция Ruby.
Чтобы избежать этого, не звоните require 'goliath'
, но использовать require 'goliath/api'
вместо.