0

に含める必要がありますEventMachine::DeferrableFaraday::Response、これは、reactorループの実行中に応答が作成された場合に限ります。クラスではなく応答オブジェクトにモジュールを含めることができることは知っていますが、私の場合、コンテキストコードの記述方法のためにそれを行うことはできません。

ループの実行中に呼び出されるメソッドがありますが、そこで実行できますか?以下のコードは、メソッドの名前空間に新しいクラスを作成するだけなので、機能しません。

def f
  module Faraday
    class Response
      include EventMachine::Deferrable
    end
  end
  ...
end

言語の専門家からのアドバイスはありますか?

4

1 に答える 1

0

これが私がこれまでやってきた方法です。より良い方法はありますか?

module Faraday
  class Response
    alias :initialize_old :initialize
    def initialize env=nil
      initialize_old env
      extend EventMachine::Deferrable if EventMachine.reactor_running?
    end
  end
end
于 2013-03-07T19:47:46.680 に答える