ruby - 如何将 Ruby1.9 与 Shoes 一起使用?

标签 ruby shoes fiber

Shoes 包装了它自己的 Ruby 安装,对吧?

我无法使用 Fiber,这是 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

因为它说 Fiber 是一个未初始化的常量,要么是我的代码有问题,要么这个 Ruby 版本不知道 Fiber 类 - 后者应该是这种情况。

我看到了this关于确定 Ruby 版本的问题(我的 mac 安装版本是 1.8),但我不知道如何更改版本。

最佳答案

查看Green Shoes .

它的功能基于 _why 的原始实现,但它被打包为 Gem 并专门为 1.9 构建。

关于ruby - 如何将 Ruby1.9 与 Shoes 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434283/

相关文章:

ruby - 鞋子布局

ruby - 正则表达式反向引用

ruby - 全面理解 Ruby 类变量

Ruby,哪个异常最适合处理未设置的环境变量?

ruby - Shoes.rb 可以创建独立的应用程序吗?

java - 如何通过JRuby在SWT/Shoes中获得macOS透明标题栏效果

c++ - 如何在 boost.fibers 中使用 work_stealing 调度器

c - 图像处理基础知识

c++ - Boost.Fiber 是否会在网络请求时自动让步,例如通过网络调用数据库?

ruby-on-rails - 关联问题创建