можно загрузить nokogiri в jruby без установки nokogiri-java? - PullRequest
2 голосов
/ 28 ноября 2009

мне нужен способ запустить следующий скрипт nokogiri

#parser.rb
require 'nokogiri'

def parseit()
//...
end

и вызовите parseit() во время работы ниже main.rb в jruby

#main.rb
require 'parser'

parseit()

Конечно, проблема в том, что jruby не может найти 'nokogiri', так как я не установил его, ака nokogiri-java через jruby -S gem install nokogiri

Причина в том, что я обнаружил какую-то ошибку в нокогири под управлением Jruby, поэтому я установил нокогири только на Ruby, а не на Jruby. parser.rb отлично работает только под Ruby.

Так что моя цель - иметь возможность запускать parseit () без необходимости устанавливать nokogiri на Jruby!

Ответы [ 4 ]

7 голосов
/ 14 декабря 2009

Nokogiri прекрасно работает под JRuby (1.4.0 имеет проблемы, но версия gem 1.4.1 работала идеально для меня).

jruby -S gem install nokogiri

, и если у вас есть проблемы с обнаружением платформы, вы можете принудительно установить его:

jruby -S gem install nokogiri --platform=java

У вас не должно быть проблем с использованием его с JRuby, если вы, то, возможно, ваш стек не прав.

1 голос
/ 28 ноября 2009

Нокогири должен работать под FFI в JRuby. См. http://www.ruby -forum.com / topic / 186274

0 голосов
/ 18 июня 2016

Вот пример ситуации, в которой может показаться, что Java-реализация Nokogiri дает результаты, отличные от версии C, что приводит к тому, что гем loofah не проходит ряд тестов JRuby. Это блокирует способность разработчиков Redmine поддерживать JRuby.

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

0 голосов
/ 28 ноября 2009

Nokogiri должен просто работать с JRuby через FFI, поэтому мне кажется, что лучший способ действий - просто выяснить, почему установка nokogiri в JRuby не работает для вас.

Какие проблемы вы видите? Какая версия на JRuby? Какая платформа?

...