Spec-Zone.ru › Ruby 4.0
  1. OpenURI::
  2. Meta

module OpenURI::Meta

Модуль примеси для хранения метаинформации.

Атрибуты

base_uri [RW]

возвращает URI, являющийся базовым URI для относительных URI в данных. Он может отличаться от URI, предоставленного пользователем, из-за перенаправления.

meta [R]

возвращает Hash, представляющий поля заголовка. Ключи Hash приводятся к нижнему регистру для канонизации. Значения Hash представляют собой содержимое полей. Если несколько полей имеют одинаковое имя, их значения объединяются через запятую.

metas [R]

возвращает Hash, представляющий поля заголовка. Ключи Hash приводятся к нижнему регистру для канонизации. Значения Hash представляют собой массивы значений полей.

status [RW]

возвращает Array, состоящий из кода состояния и сообщения.

Открытые методы экземпляра

charset () { || ... } Показать исходный код
# File lib/open-uri.rb, line 572
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-Type. Для канонизации он приводится к нижнему регистру.

Если параметр кодировки не задан, но передан блок, вызывается блок и возвращается его результат. Это можно использовать для определения кодировки.

Если параметр кодировки и блок не заданы, возвращается nil, за исключением текстового типа. В этом случае возвращается «utf-8», как определено в RFC6838 4.2.1

content_encoding () Показать исходный код
# File lib/open-uri.rb, line 589
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-Encoding в виде массива строк.

Для канонизации кодировки приводятся к нижнему регистру.

content_type () Показать исходный код
# File lib/open-uri.rb, line 557
def content_type
  type, *_ = content_type_parse
  type || 'application/octet-stream'
end

возвращает «type/subtype», то есть MIME Content-Type. Для канонизации он приводится к нижнему регистру. Параметры Content-Type удаляются.

last_modified () Показать исходный код
# File lib/open-uri.rb, line 526
def last_modified
  if vs = @metas['last-modified']
    v = vs.join(', ')
    Time.httpdate(v)
  else
    nil
  end
end

возвращает Time, представляющий поле Last-Modified.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API