class Motion::HTTP::Headers

Public Class Methods

new(headers = {}) click to toggle source
# File lib/common/http/headers.rb, line 4
def initialize(headers = {})
  @headers = {}
  if headers
    headers.each {|key, value| set(key, value) }
  end
end

Public Instance Methods

<<(key, value) click to toggle source

alias :<< :add # FIXME: doesn't work in Android

# File lib/common/http/headers.rb, line 36
def <<(key, value)
  add(key, value)
end
[](key) click to toggle source

alias :[] :get # FIXME: doesn't work in Android

# File lib/common/http/headers.rb, line 15
def [](key)
  get(key)
end
[]=(key, value) click to toggle source

alias :[]= :set # FIXME: doesn't work in Android

# File lib/common/http/headers.rb, line 23
def []=(key, value)
  set(key, value)
end
add(key, value) click to toggle source
# File lib/common/http/headers.rb, line 27
def add(key, value)
  key = key.downcase
  @headers[key] ||= []
  unless @headers[key].is_a?(Array)
    @headers[key] = [@headers[key]]
  end
  @headers[key] << value
end
dup() click to toggle source

FIXME: Android doesn't support dup (Java exception raised: java.lang.CloneNotSupportedException: Class com.yourcompany.motion_http.Headers doesn't implement Cloneable)

# File lib/common/http/headers.rb, line 49
def dup
  Headers.new(@headers)
end
each(&block) click to toggle source
# File lib/common/http/headers.rb, line 40
def each(&block)
  @headers.each(&block)
end
get(key) click to toggle source
# File lib/common/http/headers.rb, line 11
def get(key)
  @headers[key.downcase]
end
set(key, value) click to toggle source
# File lib/common/http/headers.rb, line 19
def set(key, value)
  @headers[key.downcase] = value
end
to_hash() click to toggle source
# File lib/common/http/headers.rb, line 44
def to_hash
  @headers # TODO: flatten array values
end