The Ruby Way |
作成日: 2005-06-19 最終更新日: |
Ruby本の中では、もっとも理屈っぽいのではないだろうか。 理由がわかるように書いてある。また、書くべきところと書かないでおくところの区別がしっかりしている。
まだ私には1/10も理解できないが、これから理解できるようになりたい。
いわゆるTYPOは少ない。 翔泳社のページRuby Way(www.shoeisha.co.jp) にあるほかは、 下記のみである。
ページ | 場所 | 誤 | 正 |
---|---|---|---|
522 | 監注1 | より探い話題 | より深い話題 |
次のコードが紹介されている。
require "net/http"
begin
h = Net::HTTP.new("www.ruby-lang.org", 80)
resp, data = h.get("/en/index.html", nil)
(中略)
end
実際に使うときには、Net::HTTP.newに渡すホスト名と次のgetメソッドに渡すパス名は、 一緒になったURIとして指定されるだろう(少なくとも私はそう使う)。 そこで、URIをホスト部とパス部に分けることが必要だ。そのためには、URIクラスがある。 require 'uri'としておき、uri = URI.parse(uri_str)とすると、uri.host、uri.pathに、 それぞれホスト名とパス名が入る。 なお、上記の例のパス部分で、日本人ならgetメソッドの第一引数は"/ja/index.html"であろう。
ついでに、get メソッドの代わりに head メソッドも使える。このときは、戻り値は resp のみであり、data はない。 最終更新日時 (last-modified) を見るだけなら、resp を見るだけで十分である。ところが、 resp に含まれるはずの最終更新日時が入っていないタコなサーバーも残念ながらある。
本には、どのようなエラーが発生するか、という問がある。私が発見したのは次のものである。 もっとあるかもしれない。 SocketError、EOFError、Errno::ETIMEDOUT、TimeoutError
まりんきょ学問所 > Rubyの浮き輪 > The Ruby Way