Кажется, scrubyt
не готов к Ruby 1.9, так как jcode
использовался в 1,8 - для решения проблем кодирования . Начиная с 1.9, ruby имеет лучшую поддержку кодирования (особенно utf-8) и поэтому больше не нуждается в jcode
.
С 1.9.2:
sebastien@greystones:~/dev$ rvm 1.9.2-head
sebastien@greystones:~/dev$ ruby -v
ruby 1.9.2p94 (2010-12-08 revision 30140) [x86_64-linux]
sebastien@greystones:~/dev$ ruby -e 'require "rubygems"; require "scrubyt"'
/home/sebastien/.rvm/gems/ruby-1.9.2-head/gems/scrubyt-0.4.06/lib/scrubyt.rb:1: warning: variable $KCODE is no longer effective; ignored
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- jcode (LoadError)
С 1.8.7:
sebastien@greystones:~/dev$ rvm 1.8.7-head
sebastien@greystones:~/dev$ ruby -v
ruby 1.8.7 (2010-12-23 patchlevel 330) [x86_64-linux]
sebastien@greystones:~/dev$ ruby -e 'require "rubygems"; require "scrubyt"'
sebastien@greystones:~/dev$
Я попытался изменить файлы Scrubyt следующим образом, чтобы обойти эту проблему:
unless "".respond_to? :each_char
$KCODE = "u"
require "jcode"
end
и возникли дальнейшие проблемы ... Так что потребуется больше работы, чтобы Scrubyt работал с ruby 1.9.
FWIW, ваш вариант использования более чем вероятно более сложен, но ваш пример можно сделать с помощью Mechanize (который Scrubyt использует внутри):
require 'rubygems'
require 'mechanize'
a = Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
}
a.get('http://google.com/') do |page|
puts page.title()
end