[#2355] [Req] Array#reverse — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

19 messages 1997/03/13
[#2357] Re: [Req] Array#reverse — matz@... (Yukihiro Matsumoto) 1997/03/13

まつもと ゆきひろです.

[#2359] Re: [Req] Array#reverse 1997/03/13

けいじゅ@SHLジャパンです.

[#2387] Kanji String — gotoken@... (GOTO Kentaro)

はじめまして、 後藤ともうします。

33 messages 1997/03/19
[#2389] Re: Kanji String — matz@... (Yukihiro Matsumoto) 1997/03/19

まつもと ゆきひろです.

[#2391] Re: Kanji String — gotoken@... (GOTO Kentaro) 1997/03/19

後藤です

[#2393] Re: Kanji String — matz@... (Yukihiro Matsumoto) 1997/03/19

まつもと ゆきひろです.

[#2465] curses library — MAEDA Shugo <ender@...> 1997/03/28

前田です。

[#2402] about TCPserver — MAEDA Shugo <ender@...>

前田です。

45 messages 1997/03/21
[#2403] Re: about TCPserver — matz@... (Yukihiro Matsumoto) 1997/03/22

まつもと ゆきひろです

[#2405] Re: about TCPserver — MAEDA Shugo <ender@...> 1997/03/23

前田です。

[#2406] Re: about TCPserver — matz@... (Yukihiro Matsumoto) 1997/03/24

[#2408] Re: about TCPserver — WATANABE Hirofumi <watanabe@...> 1997/03/24

わたなべです.

[#2411] Re: about TCPserver — MAEDA Shugo <ender@...> 1997/03/24

前田です。

[#2417] Re: about TCPserver — matz@... (Yukihiro Matsumoto) 1997/03/25

まつもと ゆきひろです.

[#2425] Re: about TCPserver — MAEDA Shugo <ender@...> 1997/03/25

前田です。

[#2439] url escape — gotoken@... (GOTO Kentaro)

どシロウトの後藤です.

57 messages 1997/03/27
[#2451] Re: url escape — sinara@... 1997/03/27

原です。

[#2455] class design (Re: url escape) — matz@... (Yukihiro Matsumoto) 1997/03/27

まつもと ゆきひろです

[#2471] Re: class design (Re: url escape) — sinara@... 1997/03/28

原です。

[#2487] Re: class design (Re: url escape) — matz@... (Yukihiro Matsumoto) 1997/03/29

まつもと ゆきひろです

[#2510] Re: class design (Re: url escape) 1997/03/30

けいじゅ@SHLジャパンです.

[#2603] Re: class design (Re: url escape) — sinara@... 1997/04/04

原です。

[#2505] Re: WWW library (Re: class design) — Shin-ichiro Hara <sinara@...>

原です。

15 messages 1997/03/30

[ruby-list:2439] url escape

From: gotoken@... (GOTO Kentaro)
Date: 1997-03-27 00:58:37 UTC
List: ruby-list #2439
どシロウトの後藤です. 

python のWWWライブラリを ruby にチマチマ移そうとしてます. 
とりあえず練習に URL のエスケープ関数を書いてみたので, 
誰か添削してもらえませんか? 40行ほどなので添付しました. 
# なんかダサいような気がしてます. 特に, unquote
Uppercase などはどこかで定義されるかと思ったのですが
見つけきれませんでした. 

それと質問なのですが近い将来この urllib.rb に
  p = URL.open("http://www.caelum.co.jp/~matz/ruby/)
  page = p.readlines()
  p.close()
のようなのも付け加えたいのですが, その場合, 
この場合 URL は module でなくて class にすべきなのでしょうか?
URL.quote しか使わないかも知れないのにクラスが初期化されるのは
モッタイナイので module にしようかと思っているのです. 
が, それは勘違いのような気がしてるので. 

- -- beg urllib.rb
# usage:
#   URL.quote(str, *extra)     # return escaped URL String
#   URL.unquote(str)           # return decoded URL String
module URL
  Uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  Lowercase = "abcdefghijklmnopqrstuvwxyz"
  Letter = Uppercase + Lowercase
  Digits = "0123456789"
  Alwaysafe = Letter + Digits + '_,.-'
  def quote(s, *extra)
    safe = Alwaysafe
    safe += extra.join if extra
    res = []
    s.each_byte{|b|
      c = sprintf("%c",b)
      if safe.index(c)
	res << "" + c + ""
      else
	res << "%" + sprintf("%2X",b) + ""
      end
    }
    return res.join
  end
  module_function :quote
  
  Quoteprog = Regexp.compile(/%[0-9a-fA-F][0-9a-fA-F]/)
  def unquote(s)
    i = 0
    n = s.length
    res = []
    while 0 <= i and i < n
      j = (Quoteprog =~ s[i..n])
      unless j
	res << s[i..n]
	break
      else
	res << s[i,j] + s[i+j+1,2].hex.chr
	i += j+3
      end
    end
    return res.join
  end
  module_function :unquote
end
- -- end urllib.rb

--
後藤 謙太郎@北海道大学大学院理学研究科数学専攻博士課程
mailto:gotoken@math.hokudai.ac.jp

In This Thread

Prev Next