class Aws::Rest::Request::Headers
def apply(http_req, params)
-
params
(Hash
) -- -
http_req
(Seahorse::Client::Http::Request
) --
def apply(http_req, params) @rules.shape.members.each do |name, ref| value = params[name] next if value.nil? case ref.location when 'header' then apply_header_value(http_req.headers, ref, value) when 'headers' then apply_header_map(http_req.headers, ref, value) end end end
def apply_header_map(headers, ref, values)
def apply_header_map(headers, ref, values) prefix = ref.location_name || '' values.each_pair do |name, value| headers["#{prefix}#{name}"] = value.to_s end end
def apply_header_value(headers, ref, value)
def apply_header_value(headers, ref, value) value = apply_json_trait(value) if ref['jsonvalue'] headers[ref.location_name] = case ref.shape when TimestampShape then value.utc.httpdate else value.to_s end end
def apply_json_trait(value)
base64 encodes value to aviod weird characters
With complex headers value in json syntax,
def apply_json_trait(value) Base64.strict_encode64(value) end
def initialize(rules)
-
rules
(Seahorse::Model::ShapeRef
) --
def initialize(rules) @rules = rules end