Class: Riak::Util::Headers

Inherits:
Object show all
Includes:
Net::HTTPHeader
Defined in:
lib/riak/util/headers.rb

Overview

Represents headers from an HTTP request or response. Used internally by HTTP backends for processing headers.

Direct Known Subclasses

Client::HTTPBackend::RequestHeaders

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (Headers) initialize

Returns a new instance of Headers



31
32
33
# File 'lib/riak/util/headers.rb', line 31

def initialize
  initialize_http_header({})
end

Class Method Details

+ (Object) parse(chunk)

Parse a single header line into its key and value

Parameters:

  • chunk (String)

    a single header line



37
38
39
40
41
42
43
# File 'lib/riak/util/headers.rb', line 37

def self.parse(chunk)
  line = chunk.strip
  # thanks Net::HTTPResponse
  return [nil,nil] if chunk =~ /\AHTTP(?:\/(\d+\.\d+))?\s+(\d\d\d)\s*(.*)\z/in
  m = /\A([^:]+):\s*/.match(line)
  [m[1], m.post_match] rescue [nil, nil]
end

Instance Method Details

- (Object) parse(chunk)

Parses a header line and adds it to the header collection

Parameters:

  • chunk (String)

    a single header line



47
48
49
50
# File 'lib/riak/util/headers.rb', line 47

def parse(chunk)
  key, value = self.class.parse(chunk)
  add_field(key, value) if key && value
end