Проблема с Ruby механизации и наследования - PullRequest
0 голосов
/ 03 марта 2010

Я работаю с Mechanize и испытываю проблемы с наследованием при тестировании в среде rails, используя скрипт / консоль.

Когда я пишу так:

require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
agent.get 'http://www.google.com'

Все отлично работает. Но когда я пытаюсь создать подкласс WWW :: Mechanize следующим образом:

require 'rubygems'
require 'mechanize'

class Alfa < WWW::Mechanize; end

agent = Alfa.new
agent.get 'http://www.google.com'

Я получаю следующую ошибку:

NoMethodError: У вас есть нулевой объект, когда вы этого не ожидали! Произошла ошибка при оценке nil.parse из /Library/Ruby/Gems/1.8/gems/mechanize-0.9.3/lib/www/mechanize/page.rb:77:in `parser '

Я что-то упустил?

Заранее спасибо

1 Ответ

2 голосов
/ 03 марта 2010

Когда вы создаете подкласс WWW :: Mechanize, HTML-синтаксический анализатор не предоставляется: именно об этом и говорит строка ошибки.

Это работает:

class Agent < WWW::Mechanize
end
a = Agent.new
a.html_parser = Nokogiri::HTML
a.get 'http://www.google.com'
...