なかだです。

At Thu, 13 Nov 2003 18:42:38 +0900,
Take_tk wrote:
>   それ自体はうまくいったんですが、URI.parse の戻り値が http の場合と違う
> ような気がします。

間違えました。File::Scheme.newをオーバーライドしちゃいけません。

require 'open-uri'

class File::Scheme
  def initialize(scheme, userinfo, host, port, 
                 registry, path, opaque, query, 
                 fragment)
    @path = path
  end
  def open(*rest, &block)
    File.open(@path, *rest, &block)
  end
end

module URI
  @@schemes["FILE"] = File::Scheme
end

path =  "file://" + File.expand_path(__FILE__)

uri = URI.parse(path)
p uri.class
open(uri) {|f|
  f.each_line {|line| p line}
}

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦