2

靴はそれ自身のRubyインストールをラップしますよね?

Ruby1.9の機能であるFiberが使えません。そして、ジェネレーターを作成するためにファイバーを使用したいと思います。

これが私のコードです(問題が私のコードにないことを確認できます):

class BrownianGenerator
  def initialize
    @x = 0
    @fiber = Fiber.new do
      loop do 
        @x = @x+rand; 
        Fiber.yield @x
      end
    end
  end
  def next; @fiber.resume end
  def rewind; @x=0 end
end

そして、私がこのような靴アプリを作った場合:

Shoes.app do
  @b = BrownianGenerator.new
end

靴のコンソールを引き上げると、次のエラーが表示されます。

uninitialized constant #<class:0xblah>::BrownianGenerator::Fiber

ファイバーは初期化されていない定数であると言っているので、私のコードに何か問題があるか、このRubyバージョンはファイバークラスを認識していません-後者が当てはまるはずです。

Rubyのバージョン(私のMacインストールでは1.8)を決定する際にこの質問を見ましたが、バージョンを変更する方法がわかりません。

4

3 に答える 3

2

グリーンシューズをご覧ください。

その機能は _why の元の実装に基づいていますが、Gem としてパッケージ化され、1.9 用に特別に構築されています。

于 2012-09-30T21:03:15.443 に答える
1

または、aman gupta の「貧乏人の繊維」を使用するか、::Fiber などを試してみてください。GL!-r

于 2009-10-05T16:35:40.557 に答える
1

そこで、freenode #shoes に飛び込んでみると、靴のナイトリー ビルドが Ruby1.9 を使用していることがわかりました。私はまだそれを構築しようとする時間がありませんでしたが、それは私の問題を解決するはずです.

于 2009-09-17T17:04:15.153 に答える