MacRuby,使用续集时出错

时间:2010-12-02 20:37:07

标签: ruby sequel nomethoderror macruby

我刚刚使用命令sudo macgem install sequel安装了Sequel。它告诉我sequel-3.18.0已成功安装。

当我启动xcode并启动一个新的MacRuby应用程序时,它会为单元测试设置目标。我已使用以下两行修改了stub_test.rb

require "rubygems"
require "sequel"

尝试运行单元测试时,出现以下错误:

/Users/.../macRuby Test/Tests/run_suite.rb:1:in `<main>': super: no superclass method `require' for Sequel:Class (NoMethodError)

如果没有两个require语句,测试运行正常。

我试图谷歌这个,并找到以下ticket on macruby.org

  

门票#930   在MacRuby 0.7中使用Sequel + SQLite3-Ruby gem的SIGABRT   [...]在续集中修补内核#require问题后,我可以加载Sequel和SQLite3,没有任何问题。 [...]必需的库是Sequel(Patched for Kernel.require,而不是Sequel#self.require中的super)和SQLite3-Ruby。 [...]

我在其他地方找不到任何关于此补丁的内容,但是......

有任何已知问题吗? 这个错误消息意味着什么,以及我如何让它工作?

4 个答案:

答案 0 :(得分:2)

你运行的是什么版本的MacRuby?另外,你运行32位Mac?

在我的环境中,运行MacRuby trunk的64位Intel mac,我可以安装并要求续集。

$ /usr/local/bin/macruby -r rubygems -e "require 'sequel'; p 42"
42

正如Eloy所说,最好将MacRuby问题报告给我们的邮件列表或票据trac。 http://www.macruby.org/contact-us.html

答案 1 :(得分:1)

MacRuby(如IronRuby)目前没有使用足够的ruby语言来与Sequel合作。续集在MRI(1.8和1.9),JRuby和Rubinius上进行测试,所以你可以尝试其中一个。

答案 2 :(得分:1)

我遇到similar issues并且能够使用以下组合:

MacRuby 0.8
sqlite3-ruby gem 1.3.2
sequel gem 3.18.0
OSX 10.6.5

诀窍是卸载'sqlite3'宝石并安装'sqlite3-ruby'。

答案 3 :(得分:0)

由于MacRuby仍在大力发展,我认为如果你在MacRuby-devel邮件列表上提出这个问题会更好。那些知道如何让Sequel在MacRuby上工作的人(我知道人们已经这样做了)也在那里。