原です。 > 数学会にいかなかった後藤です > > 思いついたことをだらだら書いてしまったので返事下さる場合は > 適当にハショって下さい。 こちらも考えたことをぼちぼちと返事を書きます。 > > ホームページ1枚(とそれに張りついているSRC)を取ってくる urlget.rb > > と、簡単なミラーコマンド mirror.rb ぐらいをとりあえずの目標にした > > らどうでしょう。 > > いいと思います。 news はどうしましょう。 簡単なアプリケーションは > ~/.newsrc を見て新しく記事が来てないか調べる chknews.rb の > ようなものやあればとってきてファイルに落すようなものなどです。 ああ、それも入れましょう。実は既に clipnews.rb という、ニュース を取ってきて uuencode と MIME をデコードして HTML のページに張り 付けるという ruby プログラムを作っていはいるのですが、これを新し い library で書き直したいです。 > open が何をするかというのも決めないといけません。 > 今のところ僕の想像(?)では open の返すオブジェクトは http > なら GET、 ftp なら login 手順の後、ファイル(ディレクトリ)を > RETL(LIST)をした結果のストリームを readlines で得られるような > モノだと思ってますが、どうでしょう。 そうですね。やっぱり open はストリームのハンドルを返すだけ というのが自然な感じがします。 url = URL.new(urlspec) url.connect と url = URL.open(urlspec) を同値にしてしまうというのはいかが? > ... GET なり RETL なりまでしちゃいますか? > 仮にそうだとして話しを進めると、 待ち方を考える必要があります。 > 資源(Resourcce)の取得が終るまでどうやって待ちましょうか。 > 何も受信状況をモニターできないまま待つのは辛そうですが。 モニターの機能は是非作り込みたいですね。まつもとさんも言うよ うに thread 使ってしまいましょうか。 思いつきで言うと Monitor のクラスを作ってそのインスタンス に、どのオブジェクトをモニターするか教えると実行してくれ るとか、Monitor モジュールを作って url.extend Monitor す るとモニターしてくれるとか。 その実装方法は知らないけど。^^; > >>> import urlparse > >>> print urlparse.urlparse("http://www.caelum.co.jp/~matz/ruby/") > >>> ('http', 'www.caelum.co.jp', '/~matz/ruby/', '', '', '') > 後ろの3つはそれぞれ 「;」「?」「#」 に続くparameter、require、 > fragment だそうです。 parameterって何だろ; なんだっけ。ユーザー名パスワードをつけるんでしたっけ。