модуль OpenURI::Meta
Миксин для хранения метаданных.
Атрибуты
возвращает массив, состоящий из кода состояния и сообщения.
Публичные методы экземпляра
# File lib/open-uri.rb, line 532
def charset
type, *parameters = content_type_parse
if pair = parameters.assoc('charset')
pair.last.downcase
elsif block_given?
yield
elsif type && %r{\Atext/} =~ type &&
@base_uri && /\Ahttp\z/i =~ @base_uri.scheme
"iso-8859-1" # RFC2616 3.7.1
else
nil
end
end возвращает параметр кодировки символов в поле Content-Type. Он приводится к нижнему регистру для канонизации.
Если параметр кодировки символов не задан, но задан блок, вызывается блок, и возвращается его результат. Его можно использовать для определения кодировки символов.
Если параметр кодировки символов и блок не заданы, возвращается nil, за исключением текстового типа в HTTP. В этом случае возвращается «iso-8859-1», как определено в RFC2616 3.7.1.
# File lib/open-uri.rb, line 550
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 в виде массива строк.
Кодировки приводятся к нижнему регистру для канонизации.
# File lib/open-uri.rb, line 517 def content_type type, *_ = content_type_parse type || 'application/octet-stream' end
возвращает «тип/подтип», который является MIME Content-Type. Он приводится к нижнему регистру для канонизации. Параметры Content-Type удаляются.
# File lib/open-uri.rb, line 479
def last_modified
if vs = @metas['last-modified']
v = vs.join(', ')
Time.httpdate(v)
else
nil
end
end возвращает Время, которое представляет поле Last-Modified.
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.