Действия класса 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' вместо.

Другие вопросы по тегам