class Excon::Headers

Constants

SENTINEL

Public Instance Methods

[](key) click to toggle source
# File lib/excon/headers.rb, line 21
def [](key)
  if should_delegate?(key)
    @downcased[key.downcase]
  else
    raw_reader(key)
  end
end
Also aliased as: raw_reader
[]=(key, value) click to toggle source
# File lib/excon/headers.rb, line 30
def []=(key, value)
  raw_writer(key, value)
  unless @downcased.nil?
    @downcased[key.downcase] = value
  end
end
Also aliased as: raw_writer
assoc(obj) click to toggle source
# File lib/excon/headers.rb, line 38
def assoc(obj)
  if should_delegate?(obj)
    @downcased.assoc(obj.downcase)
  else
    raw_assoc(obj)
  end
end
delete(key, &proc) click to toggle source
# File lib/excon/headers.rb, line 47
def delete(key, &proc)
  if should_delegate?(key)
    @downcased.delete(key.downcase, &proc)
  else
    raw_delete(key, &proc)
  end
end
Also aliased as: raw_delete
fetch(key, default = nil, &proc) click to toggle source
# File lib/excon/headers.rb, line 55
def fetch(key, default = nil, &proc)
  if should_delegate?(key)
    if proc
      @downcased.fetch(key.downcase, &proc)
    else
      @downcased.fetch(key.downcase, default)
    end
  else
    if proc
      raw_fetch(key, &proc)
    else
      raw_fetch(key, default)
    end
  end
end
Also aliased as: raw_fetch
has_key?(key) click to toggle source
# File lib/excon/headers.rb, line 73
def has_key?(key)
  raw_has_key?(key) || begin
    index_case_insensitive
    @downcased.has_key?(key.downcase)
  end
end
Also aliased as: raw_has_key?
raw_delete(key, &proc)
Alias for: delete
raw_fetch(key, default = nil, &proc)
Alias for: fetch
raw_has_key?(key)
Alias for: has_key?
raw_reader(key)
Alias for: []
raw_rehash()
Alias for: rehash
raw_values_at(*keys)
Alias for: values_at
raw_writer(key, value)
Alias for: []=
rehash() click to toggle source
# File lib/excon/headers.rb, line 80
def rehash
  raw_rehash
  if @downcased
    @downcased.rehash
  end
end
Also aliased as: raw_rehash
values_at(*keys) click to toggle source
# File lib/excon/headers.rb, line 87
def values_at(*keys)
  raw_values_at(*keys).zip(keys).map do |v, k|
    if v.nil?
      index_case_insensitive
      @downcased[k.downcase]
    end
  end
end
Also aliased as: raw_values_at

Private Instance Methods

index_case_insensitive() click to toggle source
# File lib/excon/headers.rb, line 107
def index_case_insensitive
  if @downcased.nil?
    @downcased = {}
    each_pair do |key, value|
      @downcased[key.downcase] = value
    end
  end
end
should_delegate?(key) click to toggle source
# File lib/excon/headers.rb, line 98
def should_delegate?(key)
  if raw_has_key?(key)
    false
  else
    index_case_insensitive
    true
  end
end