VB6で下のコードを動かすと、getメソッドが無いって怒られる。
既存のWWW::Mechanizeに定義を追加するのではなくて、新しいWWW::Mechanizeを作り出している。
require "rubygems"
require "mechanize"
module WWW
class Mechanize
def to_absolute_uri(url, cur_page=current_page())
url = URI.parse(
Util.html_unescape(url.to_s.strip)
) unless url.is_a? URI
# construct an absolute uri
if url.relative?
raise 'no history. please specify an absolute URL' unless cur_page.uri
url = cur_page.uri + url
end
return url
end
end
end
agent = WWW::Mechanize.new
agent.user_agent_alias='Windows Mozilla'
puts agent.get("http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8").body
で、
module WWW
class Mechanize
end
end
を
class WWW::Mechanize
end
に変更したら動いた。何でだ?