模块 OpenURI::Meta
用于保存元信息的 Mixin。
属性
meta[R]
返回一个表示头部字段的 Hash。Hash 的键被转换为小写以进行规范化。Hash 的值是字段主体。如果存在多个具有相同字段名称的字段,则字段值用逗号连接。
metas[R]
返回一个表示头部字段的 Hash。Hash 的键被转换为小写以进行规范化。Hash 的值是字段值的数组。
status[RW]
返回一个由状态码和消息组成的数组。
公共实例方法
charset() { || ... } 点击切换源码
返回 Content-Type 字段中的 charset 参数。它被转换为小写以进行规范化。
如果未给出 charset 参数但给出了一个块,则调用该块并返回其结果。它可以用于猜测字符集。
如果没有给出 charset 参数和块,则返回 nil,但文本类型除外。在这种情况下,根据 RFC6838 4.2.1 的定义,返回 “utf-8”。
# File open-uri.rb, line 566 def charset type, *parameters = content_type_parse if pair = parameters.assoc('charset') pair.last.downcase elsif block_given? yield elsif type && %r{\Atext/} =~ type "utf-8" # RFC6838 4.2.1 else nil end end
content_encoding() 点击切换源码
以字符串数组的形式返回 Content-Encoding 字段中的编码列表。
编码被转换为小写以进行规范化。
# File open-uri.rb, line 583 def content_encoding vs = @metas['content-encoding'] if vs && %r{\A#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?(?:,#{RE_LWS}?#{RE_TOKEN}#{RE_LWS}?)*}o =~ (v = vs.join(', ')) v.scan(RE_TOKEN).map {|content_coding| content_coding.downcase} else [] end end
content_type() 点击切换源码
返回 “type/subtype”,它是 MIME Content-Type。它被转换为小写以进行规范化。Content-Type 参数被剥离。
# File open-uri.rb, line 551 def content_type type, *_ = content_type_parse type || 'application/octet-stream' end
last_modified() 点击切换源码
返回表示 Last-Modified 字段的 Time 对象。
# File open-uri.rb, line 520 def last_modified if vs = @metas['last-modified'] v = vs.join(', ') Time.httpdate(v) else nil end end