Class: ActionDispatch::Http::Headers

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/action_dispatch/http/headers.rb

Constant Summary collapse

CGI_VARIABLES =
%w(
  CONTENT_TYPE CONTENT_LENGTH
  HTTPS AUTH_TYPE GATEWAY_INTERFACE
  PATH_INFO PATH_TRANSLATED QUERY_STRING
  REMOTE_ADDR REMOTE_HOST REMOTE_IDENT REMOTE_USER
  REQUEST_METHOD SCRIPT_NAME
  SERVER_NAME SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE
)
HTTP_HEADER =
/\A[A-Za-z0-9-]+\z/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env = {}) ⇒ Headers

Returns a new instance of Headers.



17
18
19
# File 'lib/action_dispatch/http/headers.rb', line 17

def initialize(env = {})
  @env = env
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



15
16
17
# File 'lib/action_dispatch/http/headers.rb', line 15

def env
  @env
end

Instance Method Details

#[](key) ⇒ Object



21
22
23
# File 'lib/action_dispatch/http/headers.rb', line 21

def [](key)
  @env[env_name(key)]
end

#[]=(key, value) ⇒ Object



25
26
27
# File 'lib/action_dispatch/http/headers.rb', line 25

def []=(key, value)
  @env[env_name(key)] = value
end

#each(&block) ⇒ Object



38
39
40
# File 'lib/action_dispatch/http/headers.rb', line 38

def each(&block)
  @env.each(&block)
end

#fetch(key, *args, &block) ⇒ Object



34
35
36
# File 'lib/action_dispatch/http/headers.rb', line 34

def fetch(key, *args, &block)
  @env.fetch env_name(key), *args, &block
end

#key?(key) ⇒ Boolean Also known as: include?

Returns:

  • (Boolean)


29
30
31
# File 'lib/action_dispatch/http/headers.rb', line 29

def key?(key)
  @env.key? env_name(key)
end

#merge(headers_or_env) ⇒ Object



42
43
44
45
46
# File 'lib/action_dispatch/http/headers.rb', line 42

def merge(headers_or_env)
  headers = Http::Headers.new(env.dup)
  headers.merge!(headers_or_env)
  headers
end

#merge!(headers_or_env) ⇒ Object



48
49
50
51
52
# File 'lib/action_dispatch/http/headers.rb', line 48

def merge!(headers_or_env)
  headers_or_env.each do |key, value|
    self[env_name(key)] = value
  end
end