模块 URI
公共类方法
open(name, *rest, &block) 点击切换源代码
允许打开各种资源,包括 URI。
如果第一个参数响应 ‘open’ 方法,则会使用其余的参数调用该对象的 ‘open’ 方法。
如果第一个参数是一个以 `(协议)://` 开头的字符串,它将被 URI.parse 解析。 如果解析后的对象响应 ‘open’ 方法,则会使用其余的参数调用该对象的 ‘open’ 方法。
否则,将调用 Kernel#open。
OpenURI::OpenRead#open
提供 URI::HTTP#open
、URI::HTTPS#open 和 URI::FTP#open
、Kernel#open。
我们可以接受以 http://、https:// 和 ftp:// 开头的 URI 和字符串。 在这些情况下,打开的文件对象会被 OpenURI::Meta
扩展。
调用超类方法
# File open-uri.rb, line 23 def self.open(name, *rest, &block) if name.respond_to?(:open) name.open(*rest, &block) elsif name.respond_to?(:to_str) && %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name && (uri = URI.parse(name)).respond_to?(:open) uri.open(*rest, &block) else super end end