我想看看黄瓜JRuby的on Rails的。一个预requesites的是webrat具有作为先决条件角度来说,Hpricot。

我已经安装了宝石使用角度来说,Hpricot:

宝石安装角度来说,Hpricot --source http://code.whytheluckystiff.net --version 0.6.1 --platform的java

此安装角度来说,Hpricot的Java版本。我的hpricot_scan.jar添加到CLASSPATH但是当我运行:

cucumber features -n

我得到以下输出:

HpricotScanService.java:931:in `hpricot_scan': java.lang.NoSuchMethodError:
org.jruby.runtime.builtin.IRubyObject.getInstanceVariable(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
from HpricotScanService.java:1324:in `__hpricot_scan'
from null:-1:in `call'
from InvocationCallback.java:67:in `execute'
from FullFunctionCallbackMethod.java:69:in `call'
from DynamicMethod.java:243:in `call'
from CachingCallSite.java:283:in `cacheAndCall'
from CachingCallSite.java:121:in `callBlock'

如果我编译HpricotScanService.java文件,并将生成的.class文件添加到类路径,我得到:

Then I should see "Run"
private method `scan' called for Hpricot:Module (NoMethodError)
features/step_definitions/webrat_steps.rb:94:in `/^I should see "([^\"]*)"$/'
features/manage_activity.feature:9:in `Then I should see "Run"'

如果我尝试安装角度来说,Hpricot的后续版本,然后我得到:

ERROR: Failed to build gem native extension.
C:/Program Files/Ruby/jruby-1.2.0/bin/../bin/jruby.bat extconf.rb install hpricot --platform java
C:/Program Files/Ruby/jruby-1.2.0/bin/../lib/ruby/1.8/mkmf.rb:7: JRuby does not support native extensions. Check wiki.jruby.org for alternatives. (Not
ImplementedError)
from C:/Program Files/Ruby/jruby-1.2.0/bin/../lib/ruby/1.8/mkmf.rb:1:in `require'
from extconf.rb:1

有没有人有任何线索,我做错了/没有做/在那里我太傻了什么?

使用Windows XP,JRuby的1.2.0

有帮助吗?

解决方案

FYI,JRuby的1.4版本现在支持角度来说,Hpricot的版本0.7。

http://jruby.org/2009/11 /02/jruby-1-4-0.html

其他提示

我不知道黄瓜,但角度来说,Hpricot绝对可以从JRuby的1.2.0(虽然不是角度来说,Hpricot的最新版本)使用。哪个版本的角度来说,Hpricot的你有安装?也许这是与其他库不相容?

下面的命令为我工作:

jruby -S gem install hpricot --version '~>0.6.1'  

由于上个月的角度来说,Hpricot JRuby支持奥拉·比尼的重写,在混帐头角度来说,Hpricot的可安装使用JRuby。只要下载了头,然后用

jruby -S rake package_jruby
cd pkg
sudo jgem install ./hpricot-0.8.1-jruby.gem

和你应该金色。

角度来说,Hpricot使用本地C扩展,它不符合FFI。因此,它不能在JRuby下使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top