Module: Agents::Helpers::Headers

Defined in:
lib/agents/helpers/headers.rb

Class Method Summary collapse

Class Method Details

.merge(agent_headers, runtime_headers) ⇒ Object



18
19
20
21
22
23
# File 'lib/agents/helpers/headers.rb', line 18

def merge(agent_headers, runtime_headers)
  return runtime_headers if agent_headers.empty?
  return agent_headers if runtime_headers.empty?

  agent_headers.merge(runtime_headers) { |_key, _agent_value, runtime_value| runtime_value }
end

.normalize(headers, freeze_result: false) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
12
13
14
15
16
# File 'lib/agents/helpers/headers.rb', line 8

def normalize(headers, freeze_result: false)
  return freeze_result ? {}.freeze : {} if headers.nil? || (headers.respond_to?(:empty?) && headers.empty?)

  hash = headers.respond_to?(:to_h) ? headers.to_h : headers
  raise ArgumentError, "headers must be a Hash or respond to #to_h" unless hash.is_a?(Hash)

  result = symbolize_keys(hash)
  freeze_result ? result.freeze : result
end