From: Tanaka Akira Date: 2002-02-21T08:05:13+09:00 Subject: [ruby-dev:16013] Re: making net/*.rb grok URI In article <20020221020159R.maki@rubycolor.org>, TAKAHASHI Masayoshi writes: > $B$`$`!";d$O!"(BNet::HTTP $B$KCV$+$J$$$N$J$i(B URI#open{|f| ...} $B$+$J!)(B $B$H(B > $B;W$C$F$$$?$G$7$?!#(BNet::open $B$HHf$Y$F$b!"!V(Bfile://...$B!W$J%j%=!<%9$r(B > $B07$&>l9g$K$b<+A3$K8+$($^$9$7!#(B URI#open $B<+BN$K$O$^$C$?$/$b$C$F;?@.$J$N$G$9$,!"J8;zNs$,M?$($i$l$?;~$K(B Net.open(str) URI.parse(str).open $B$H$$$&$h$&$K(B 6$BJ8;z$bD9$/=q$+$J$1$l$P$J$i$J$$$N$O$A$g$C$H$J$!(B... $B$H46$8(B $B$^$9!#$H$/$K(B one liner $B$G$O!#(B $B$b$A$m$s!"J#;($J$3$H$r$d$k;~$K$O(B URI $B%*%V%8%'%/%H$,4{$K$"$k$3$H$,B?$$(B $B$H;W$&$N$G!"(B Net.open(uri) uri.open $B$H5U$KC;$/$J$k$G$7$g$&$,!#(B $B$U$`!#$&$^$$$N$r;W$$$D$-$^$7$?!#(BNet.open $B$OE12s$7$^$9!#(B Kernel#open $B$r=$@5$7$FBh0l0z?t$,(B (http|ftp|file):// $B$G;O$^$C$F$$$?$j(B URI $B%*%V%8%'%/%H$G$"$C$?$j(B $B$7$?>l9g$K$O<+F0E*$K(B URI.parse(name).open $B$r8F$V$H$$$&$N$O$I$&$G$7$g$&(B? $B$^$!!"(BKernel#open $B$O:#$G$b@hF,$N(B | $B$rFCJL07$$$9$k$o$1$G$9$7!"FCJL07$$(B $B$,$A$g$C$HA}$($F$bBg$7$?LdBj$O$J$$$H$$$&$3$H$G!#(B > $B$=$l$H!"$3$N!V(Bf$B!W$KBP$7$F!"(Bseek/rewind $B$G$-$k$h$&$K$9$k$+(B > $B$I$&$+!"$^$?5U$K!"(Bcache$B$r;H$&$J$i(Bbyte range $B$b07$($k$h$&$K(B > $B$9$k$+!D!D$C$F!"$3$l$OFbB&$NOC$G%$%s%?!<%U%'!<%9$H$O4X78$J$$$+!#(B $B8=:_$NL\O@8+$H$7$F$O(B($B$5$7$"$?$C$F$O(B) f $B$O(B StringIO $B$+(B Tempfile $B$rA[Dj(B $B$7$F$$$k$N$G!"(Bseek/rewind $B$O2DG=$K$J$j$^$9!#$D$^$j!"(Bopen $B;~$K%G!<%?$r(B $BA4It$H$C$F$-$F$7$^$&$3$H$r9M$($F$$$^$9!#$b$A$m$s(B lazy $B$K$d$k$3$H$b2DG=(B $B$G$9$,!"7e0c$$$KLq2p$J$N$G!#(B byte range $B$O(B... $B$=$b$=$b$I$&$d$C$F;XDj$7$?$i$$$$$N$+$H$$$&LdBj$,$"$j(B $B$^$9$M!#(Bhash $B$rEO$9$/$i$$$7$+;W$$$D$-$^$;$s$,!#(B uri.open(:byte_range => 0..499) uri.open(:http_header => {'Range' => 'bytes=0-499'}) $B$^$!!"8D?ME*$K$O(B byte range $B$r07$&$/$i$$$J$i(B Net::HTTP $B$rD>@\;H$($H$$(B $B$&5$$,$7$^$9!#(B Referer: $B$d(B User-Agent: $B$r;XDj$9$k$/$i$$$O$G$-$?$[$&$,$$$$$H$O;W$&$s$G(B $B$9$,!#(B -- [$BEDCf(B $BE/(B][$B$?$J$+(B $B$"$-$i(B][Tanaka Akira] $B!V$U$($m(B! $B$o$+$a$A$c$s:n@o$G$9$(C"=$B!W(B(Little Worker, $B7KM7@84](B)