鞋子包装它自己的Ruby安装,对吗?
我不能使用作为Ruby1.9功能的Fiber。而且,我想用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
因为,它说Fiber是一个未初始化的常量,我的代码有问题或者这个Ruby版本不知道Fiber类 - 后者应该是这种情况。
我看到this有关确定Ruby版本的问题(我的mac安装版本为1.8),但我不知道如何更改版本。
答案 0 :(得分:2)
查看Green Shoes。
它的功能基于_why的原始实现,但它被打包为Gem并专门为1.9构建。
答案 1 :(得分:1)
所以我跳进freenode #shoes,发现每晚的鞋子都使用Ruby1.9。我还没有时间尝试构建它,但这应该可以解决我的问题。
答案 2 :(得分:1)
或者你可以使用aman gupta的“穷人的纤维”或尝试做::纤维 或者不是。 GL! -r