[#29469] エラーを捕まえたいのですが ... — Sakae Kobayashi <sakae@...>
困った時に出てくる、小林榮です。
まつもと ゆきひろです
In message <988708753.422219.10637.nullmailer@ev.netlab.zetabits.com>
[#29471] rd2man について — "NAITOH Jun" <naitoh@...>
こんにちは、内藤と申します。
[#29480] xpstore — akira yamada / やまだあきら <akira@...>
[#29490] Re: [ruby-talk:14555] Ruby as a Mac OS/X scripting language — maili31s@... (SugHimsi == SUGIHARA Hiroshi)
すぎむし速報。↓だそうです。
古暮でございます。MacOS X をいじり始めて一週間程度なのですが,
始めて投稿します。福田と申します。メインにはMacを使っていますので、Rubyを直
古暮でございます。
こんにちは、近藤と申します。
古暮でございます。
[#29504] クラスブラウザ with ReFe — kadu <kadu3@...16.alpha-net.ne.jp>
こんにちは。kadu です。
[#29513] drb-1.3.2 — Masatoshi SEKI <m_seki@...>
[#29521] A problem with the latest irb — "Akinori MUSHA" <knu@...>
IRB 最新版(0.7.3)ですが、どういうわけか、定義したメソッドを
[#29524] tr range? — kiri@...
桐山です。
新井です。
桐山です。
新井です。
[#29544] enriching standard extention libraries: syslog, zlib, etc. — "Akinori MUSHA" <knu@...>
Syslog モジュールを標準添付にするというのはどうでしょうか。
[#29547] strftime.c でのエラー — "Kazuaki Miyauchi" <miyauchk@...>
宮内といいます。
[#29550] UDP でバイナリデータを送りたいのですが? — "Kenji Takahashi" <kenji4553@...>
はじめまして。
[#29587] duplicate fragment identifiers in ruby-refm.html — Tanaka Akira <akr@...17n.org>
ふと気がついたのですが、
[#29597] media watch 2001.05.08 — Noritsugu Nakamura <nnakamur@...>
[#29603] Importing shell.rb — "Akinori MUSHA" <knu@...>
At Mon, 7 May 2001 14:50:32 +0900,
[#29604] Importing eachdelegator.rb — "Akinori MUSHA" <knu@...>
少し前に登場した、岡田さん作の EachDelegator:
まつもと ゆきひろです
At Wed, 9 May 2001 17:58:34 +0900,
原です。
[#29644] rwiki.rb でエラー — norio goto <goto@...>
お世話になります、後藤@横河工事です。
後藤@横河工事です。
後藤@横河工事です。
In <20010514192948A.goto@yokogawa-kouji.co.jp>
後藤@横河工事です。
後藤@横河工事です。
後藤@横河工事です。
[#29647] String#index — OHARA Shigeki <os@...>
大原です。
[#29665] frozen string in a |= b — kiri@...
桐山です。
[#29675] with(obj){ } が欲しい。 — Take_tk <ggb03124@...>
例によって、ワタシ好みののりクエストですみません。
さくです。
Take_tkさんの<20010515205133.DFBA.GGB03124@nifty.ne.jp>から
たけ(tk)です。
まつもと ゆきひろです
たけ(tk)です。
まつもと ゆきひろです
たけ(tk)です。
[#29707] OBJECT DAY2001 — "K.Kosako" <kosako@...>
OBJECT DAY2001から帰ってきました。
まつもと ゆきひろです
渡辺哲也です。
YARPC関連で動いてお騒がせしている(_o_)高橋征義です。
あおきです。
なひです。
なひです。
いがらしです。
なひです。
あおきです。
[#29720] rand(1<<32) — TAKEUCHI Hideki <take@...>
竹内です。
[#29721] Cygwin で Ruby をコンパイルするとエラーがでます。 — "Inoue" <inoue@...>
はじめまして、最近Rubyをはじめました井上と申します。
[#29759] WinNT Ruby CGI KILL? — "Inoue" <inoue@...>
井上です。
[#29766] インストールができません。 — Jun-ichi Murakoshi <murakosi@...>
長沢@新大OB です。
[#29788] marshaled time format differ — IWATSUKI Hiroyuki <don@...>
岩月と申します。
まつもと ゆきひろです
岩月と申します。
岩月と申します。
From: IWATSUKI Hiroyuki <don@na.rim.or.jp>
岩月と申します。
岩月と申します。
At Tue, 29 May 2001 00:23:31 +0900,
岩月と申します。
At Tue, 29 May 2001 09:10:26 +0900,
[#29812] A request to RAA (was Re: YARPC 19101) — Takahiro Kambe <taca@...>
In message <20010527174810.632346.eban@os.rim.or.jp>
[#29824] Windows 版 Ruby — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#29853] "" で行われる展開を eval 無しで… — ABE Shigeru <shiger-a@...>
みなさま、はじめまして。阿部といいます。
From: ABE Shigeru <shiger-a@nifty.com>
阿部です。
From: ABE Shigeru <shiger-a@nifty.com>
こんにちは、阿部です。
[#29864] ActiveScriptRuby について質問です — たくみ <taku3@...>
原 忠司と申します。
[#29880] autoconf.rb — nobu.nakada@...
なかだです。
[#29886] mod_ruby and eruby — norio goto <goto@...>
後藤@横河工事です。
始めまして,田代と申します.
前田です。
In message <87hey3pg1w.wl@studly.priv.netlab.zetabits.co.jp>
[#29911] w3m のコンパイルエラーが起きました — "Inoue" <inoue@...>
井上です。
[#29941] Ruby ライセンスについて — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
In message <991297854.779223.23013.nullmailer@ev.netlab.zetabits.com>
At Thu, 31 May 2001 18:00:18 +0900,
有馬@横浜、忙しいはず..です。
[ruby-list:29692] Re: rnet.rb 〜高レベルネットライブラリ〜
From: 堀川 久 <vzw00011@nifty.ne.jp>
Subject: [ruby-list:29523] Re: rnet.rb 〜高レベルネットライブラリ〜
Date: Sun, 6 May 2001 11:01:09 +0900
るびきちです。
遅くなりましたが、rnet.rb更新しました。
> HTTP/1.1では303 See OtherのときはGETで取り直し,それ以外のときはPOST
> メソッドにすることになってるようですね。
>
> pre-HTTP/1.1では302 FoundのときにGETで取り直す実装が多いらしい。
情報ありがとうございます。
たまたまこの状況にあるページを見つけたので修正も楽でした。
# URbはまだリリースされてないみたいですね。
#!/usr/bin/env ruby
=begin
= RNet
$Id: rnet.rb,v 1.7 2001/05/02 04:42:54 takashi Exp takashi $
高レベルネットクラス。要uri.rb。
URIで指定してネットワークをいじくる。
== メソッド
--- RNet.new(arg)
RNetオブジェクトを作る。
argは文字列かURIオブジェクトでURIを指定。
URIによりスキームを決定し、それに応じたメソッドが使えるようになる。
=== HTTP
--- RNet.head(header0={})
HEADリクエストを発行。HTTPResponseオブジェクトを返す。
--- RNet.get(header0={})
GETリクエストを発行。HTTPResponseオブジェクトを返す。
--- RNet.post(data, header0={})
POSTリクエストを発行。dataは文字列かハッシュ。
HTTPResponseオブジェクトを返す。
=end
require 'uri'
require 'kconv'
require 'cgi'
class RNet
TMail_lib = 'tmail/tmail'
class RNetRedirectionLoopError < RuntimeError; end
module Http
@@HeadHeader = {}
@@GetHeader = {
'User-Agent'=>'w3m/0.2.1',
'Accept'=> 'text/*, image/*, audio/*, application/*',
'Accept-Language'=> 'ja; q=1.0, en; q=0.5',
}
@@PostHeader = {
'User-Agent'=>'w3m/0.2.1',
'Accept'=> 'text/*, image/*, audio/*, application/*',
'Accept-Language'=> 'ja; q=1.0, en; q=0.5',
'Content-type'=>'application/x-www-form-urlencoded',
}
end
module Ftp
end
end
class RNet
def initialize(arg)
parse_url(arg)
extend self.type.const_get(@uri.scheme.capitalize)
setup
end
def parse_url(arg)
case arg
when URI
@uri = arg
when String
@uri = URI::create(arg)
else
raise TypeError, "RNet.new expected URI or String"
end
end
private :parse_url
################ HTTP
module Http
def setup
require 'net/http'
(@redirections ||= []).push @uri
@host, @port, @path, @query = @uri.host, @uri.port, @uri.path, @uri.query
@net = Net::HTTP::new @host, @port
end
private :setup
def full_uri(url)
begin
URI::create(url)
rescue
URI::create(@uri, url)
end
end
def head(header0={})
header = @@HeadHeader.dup.update(header0)
res = @net.head2 @path, header
res.extend HTTPResponseExtension
res
end
def get(header0={})
header = @@GetHeader.dup.update(header0)
STDERR.puts "GET #{@uri}" if $DEBUG
@net.get2("#{@path}?#{@query}", header) do |res|
res.extend HTTPResponseExtension
if res.code =~ /^3[0-9][0-9]$/
return redirection(res['location'], header0)
end
end
end
def redirection(location, header0, request = :get)
parse_url(full_uri(location))
@redirections.find{|x| x == @uri} and raise RNetRedirectionLoopError
setup
send(request, header0)
end
private :redirection
def hash2data(hash)
data = ''
hash.each_pair do |name, value|
case value
when Array
value.each do |vv|
data << "#{name}=#{CGI::escape(Kconv::tosjis vv)}&"
end
when NilClass
else
data << "#{name}=#{CGI::escape(Kconv::tosjis value)}&"
end
end
data.chop!
data
end
private :hash2data
def post(data, header0={})
case data
when String
datastr = data
when Hash
datastr = hash2data(data)
else
raise TypeError, "RNet#post: expected String or Hash!"
end
header = @@PostHeader.dup.update(header0)
STDERR.puts "POST #{@uri}" if $DEBUG
@net.post2("#{@path}?#{@query}", datastr, header) do |res|
res.extend HTTPResponseExtension
case res.code
when '303'
return redirection(res['location'], header0, :get)
when /^3[0-9][0-9]$/
return redirection(res['location'], header0, :post)
end
end
end
module HTTPResponseExtension
def content_type; self['content-type']; end
#def content_length; self['content-length']; end
def server; self['server']; end
def date2time(header)
require TMail_lib
self[header] and TMail::DateH.new("Date", self[header]).date
end
def last_modified; date2time('last-modified'); end
def date; date2time('date'); end
end
end
end
if __FILE__ == $0
get = RNet::new('http://www.ruby-lang.org/~rubikitch').get
# get = RNet::new('http://www.ruby-lang.org/~rubikitch/tmp/l1.mrb').get
get.body
p get.code
get.each do |h,v|
p [h,v]
end
p get.last_modified
p get.date
p get.content_length
p get.server
end