Class: Rack::Utils::HeaderHash

Inherits:
Hash
  • Object
show all
Defined in:
lib/action_controller/vendor/rack-1.0/rack/utils.rb

Overview

A case-insensitive Hash that preserves the original case of a header when set.

Instance Method Summary collapse

Constructor Details

#initialize(hash = {}) ⇒ HeaderHash

Returns a new instance of HeaderHash.



189
190
191
192
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 189

def initialize(hash={})
  @names = {}
  hash.each { |k, v| self[k] = v }
end

Instance Method Details

#[](k) ⇒ Object



205
206
207
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 205

def [](k)
  super @names[k.downcase]
end

#[]=(k, v) ⇒ Object



209
210
211
212
213
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 209

def []=(k, v)
  delete k
  @names[k.downcase] = k
  super k, v
end

#delete(k) ⇒ Object



215
216
217
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 215

def delete(k)
  super @names.delete(k.downcase)
end

#include?(k) ⇒ Boolean Also known as: has_key?, member?, key?

Returns:

  • (Boolean)


219
220
221
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 219

def include?(k)
  @names.has_key? k.downcase
end

#merge(other) ⇒ Object



232
233
234
235
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 232

def merge(other)
  hash = dup
  hash.merge! other
end

#merge!(other) ⇒ Object



227
228
229
230
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 227

def merge!(other)
  other.each { |k, v| self[k] = v }
  self
end

#to_hashObject



194
195
196
197
198
199
200
201
202
203
# File 'lib/action_controller/vendor/rack-1.0/rack/utils.rb', line 194

def to_hash
  inject({}) do |hash, (k,v)|
    if v.respond_to? :to_ary
      hash[k] = v.to_ary.join("\n")
    else
      hash[k] = v
    end
    hash
  end
end