class Awscr::Signer::HeaderCollection

Overview

An array like structure that holds Header objects. Duplicated headers are merged into a single header. The data structure maintains proper ordering of the headers.

headers = HeaderCollection.new
headers.add(Header.new("k", "v"))
headers.to_a # => [Header.new("k", "v")]

Included Modules

Defined in:

awscr-signer/core/header_collection.cr

Constant Summary

BLACKLIST_HEADERS = ["cache-control", "content-length", "expect", "max-forwards", "pragma", "te", "if-match", "if-none-match", "if-modified-since", "if-unmodified-since", "if-range", "accept", "authorization", "proxy-authorization", "from", "referer", "user-agent"]

List of headers names not allowed in the collection.

Instance Method Summary

Instance Method Detail

def []=(key, value) #

Set or add a header by key value


[View source]
def []?(key) : Header | Nil #

Get a header by key, or nil of it does not exit


[View source]
def add(k : String, v : String) : HeaderCollection #

Adds a header to the collection. Merging duplicate header keys as per AWS requirements


[View source]
def add(header : Header) : HeaderCollection #

Adds a Header to the internal header list If the header already exists, it's value is updated


[View source]
def delete(header : Header) #

Deletes the header


[View source]
def delete(key : String) #

Deletes a header by a string


[View source]
def each(&) #

Yields each header


[View source]
def keys #

Returns a list of the header keys ie: names


[View source]
def to_s(io : IO) #

Returns the collection of headers separated by newline with a trailing new line added


[View source]