こんなこともできるのねってお話。
たとえば、以下のようなものを書いたとする。
class String def iWebGet(i) html = nil ua = Hash.new ua["User-Agent"] = "".getAgent ua["Accept-language"] = "ja;q=1.0, en;q=0.5" begin timeout(i){ html = open(self,ua) do |f| charset = f.charset # 文字種別を取得 f.read # htmlを読み込んで変数htmlに渡す end } rescue TimeoutError => e html = e rescue => e html = e end html end end
これ、みればわかるけど応答が String とは限らないのよね。たとえば判定はこう書けるのよ。
x = "http://192.168.1.10/".iWebGet(1) if x.class == String p x else # 以下はエラー p "Error" p x end
そう。 オブジェクト.class で、Stringクラスかどうか判定できる のね。
興味があったらいろいろ試してね。