可以在没有安装nokogiri-java的情况下加载joky中的nokogiri?

时间:2009-11-28 07:22:41

标签: ruby jruby nokogiri

我需要一种方法来运行以下nokogiri脚本

#parser.rb
require 'nokogiri'

def parseit()
//...
end

并在jruby

中的main.rb下运行时调用parseit()
#main.rb
require 'parser'

parseit()

当然问题是jruby找不到'nokogiri'因为我还没有安装它{em> nokogiri-java 通过jruby -S gem install nokogiri

原因是我在Jruby下运行的nokogiri中发现了一些错误,所以我只在Ruby上安装了nokogiri而不是Jruby。 parser.rb完全在Ruby下运行。

所以我的目标是能够运行parseit()而无需在Jruby上安装nokogiri!

4 个答案:

答案 0 :(得分:7)

Nokogiri在JRuby下运行得很好(1.4.0有问题,但宝石的1.4.1版本对我来说非常合适)。

jruby -S gem install nokogiri

如果您遇到平台检测问题,可以强制执行:

jruby -S gem install nokogiri --platform=java

使用JRuby时不应该有任何问题,如果你那么可能你的堆栈不对。

答案 1 :(得分:1)

Nokogiri应该在JRuby的FFI下工作。见http://www.ruby-forum.com/topic/186274

答案 2 :(得分:0)

Nokogiri应该通过FFI与JRuby合作,所以在我看来,最好的行动方案就是弄清楚为什么在JRuby中安装nokogiri不适合你。

你看到了什么样的问题?什么JRuby版本?什么平台?

答案 3 :(得分:0)

这是一个例子,看起来Nokogiri的Java实现会产生与C版本不同的结果,这导致丝瓜宝宝失败了一堆JRuby测试。这阻碍了Redmine开发人员支持JRuby的能力。

https://github.com/flavorjones/loofah/issues/88#issuecomment-122747924