原です。

> どシロウトの後藤です. 
> 
> python のWWWライブラリを ruby にチマチマ移そうとしてます. 
> とりあえず練習に URL のエスケープ関数を書いてみたので, 
> 誰か添削してもらえませんか? 40行ほどなので添付しました. 


ruby だとこんな感じでいけますね。

  def quote(s, *extra)
    s.gsub(/[^A-Za-z0-9_,.\-#{Regexp.quote(extra.join)}]/) {
      "%#{$&.unpack('H2')}"
    }
  end

  def unquote(s)
    s.gsub(/%([0-9a-fA-F][0-9a-fA-F])/) { [$1].pack("H2") }
  end


で、気がついたんですが、unpack の調子が悪いみたいです。

p "a".unpack("H2") # ==> ["61\000"]


#どうもメールが来ないと思ったらネットワークが死んでいました。