Pregunta

Estoy intentando mirar pepino para jruby sobre rieles. Uno de los pre-requesites es webrat que tiene hpricot como pre-requisito.

He instalado la gema con hpricot usando:

joya instalar hpricot --source http://code.whytheluckystiff.net --version 0.6.1 java --platform

Esto instala la versión Java de hpricot. Agrego el hpricot_scan.jar a la CLASSPATH, pero cuando corro:

cucumber features -n

Me sale el siguiente resultado:

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'

etc.

Si puedo compilar el archivo HpricotScanService.java y añadir el archivo .class resultante a la ruta de clase, me sale:

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"'

Si intento instalar las versiones posteriores del hpricot, entonces me sale:

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

¿Alguien tiene alguna pista en cuanto a lo que estoy haciendo mal / no hacer / dónde estoy siendo estúpida.?

Uso de Windows XP, JRuby 1.2.0

¿Fue útil?

Solución

FYI, la versión 1.4 de JRuby ahora compatible con la versión 0.7 de hpricot.

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

Otros consejos

No sé acerca de pepino pero hpricot definitivamente se puede utilizar desde JRuby 1.2.0 (aunque no la última versión del hpricot). ¿Qué versión de hpricot ¿Usted se ha instalado? Tal vez es incompatible con las otras bibliotecas?

El siguiente comando funcionó para mí:

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

Desde reescritura de Ola Bini de apoyo hpricot jruby el mes pasado, el git jefe de hpricot puede ser instalado con jruby. Sólo tiene que descargar la cabeza, a continuación, utilizar

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

y debe ser de oro.

hpricot utiliza extensiones nativas en C y no FFI compatible. Por lo tanto no se puede utilizar bajo JRuby.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top