Spec-Zone.ru › Ruby on Rails 7.1

class ActionDispatch::Http::Headers

Parent:
Объект
Included modules:
Enumerable

Action Dispatch HTTP Headers

Предоставляет доступ к HTTP-заголовкам запроса из среды.

env     = { "CONTENT_TYPE" => "text/plain", "HTTP_USER_AGENT" => "curl/7.43.0" }
headers = ActionDispatch::Http::Headers.from_hash(env)
headers["Content-Type"] # => "text/plain"
headers["User-Agent"] # => "curl/7.43.0"

Обратите также внимание, что когда заголовки сопоставляются с переменными типа CGI сервером Rack, как тире, так и подчеркивания преобразуются в подчеркивания. Эта неоднозначность больше не может быть разрешена на данном этапе. И подчеркивания, и тире должны интерпретироваться так, как будто они изначально были отправлены как тире.

# GET / HTTP/1.1
# ...
# User-Agent: curl/7.43.0
# X_Custom_Header: token

headers["X_Custom_Header"] # => nil
headers["X-Custom-Header"] # => "token"

Константы

CGI_VARIABLES
HTTP_ЗАГОЛОВОК

Общедоступные методы класса

from_hash(hash) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 52
def self.from_hash(hash)
  new ActionDispatch::Request.new hash
end

Общедоступные методы экземпляра

[](key) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 61
def [](key)
  @req.get_header env_name(key)
end

Возвращает значение для заданного ключа, сопоставленного со @env.

[]=(key, value) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 66
def []=(key, value)
  @req.set_header env_name(key), value
end

Устанавливает заданное значение для ключа, сопоставленного со @env.

add(key, value) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 71
def add(key, value)
  @req.add_header env_name(key), value
end

Добавляет значение к заголовку с несколькими значениями, например, Vary или Accept-Encoding.

each(&block) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 97
def each(&block)
  @req.each_header(&block)
end
env() Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 118
def env; @req.env.dup; end
fetch(key, default = DEFAULT) { || ... } Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 89
def fetch(key, default = DEFAULT)
  @req.fetch_header(env_name(key)) do
    return default unless default == DEFAULT
    return yield if block_given?
    raise KeyError, key
  end
end

Возвращает значение для заданного ключа, сопоставленного со @env.

Если ключ не найден и необязательный блок кода не предоставлен, генерируется исключение KeyError.

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

include?(key)
Псевдоним для: key?
key?(key) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 75
def key?(key)
  @req.has_header? env_name(key)
end
Также алиас для: include?
merge(headers_or_env) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 103
def merge(headers_or_env)
  headers = @req.dup.headers
  headers.merge!(headers_or_env)
  headers
end

Возвращает новый экземпляр Http::Headers, содержащий содержимое headers_or_env и исходный экземпляр.

merge!(headers_or_env) Показать исходный код
# File actionpack/lib/action_dispatch/http/headers.rb, line 112
def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    @req.set_header env_name(key), value
  end
end

Добавляет содержимое headers_or_env к записям исходного экземпляра; дублирующие ключи перезаписываются значениями из headers_or_env.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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