class Namira::Middleware::Header

Creates the final request headers by merging global, defaults, and request headers

Public Class Methods

new(app) click to toggle source
# File lib/namira/middleware/header.rb, line 6
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source

Called by the middleware runner.

@param env [Namira::Env] The request environment

# File lib/namira/middleware/header.rb, line 14
def call(env)
  headers = Hash(Namira.config.headers.to_h).dup
  headers.merge!(additional_headers(env))
  headers.merge!(env.headers.to_h)
  env.headers = convert_headers(headers)
  @app.call(env)
end

Private Instance Methods

additional_headers(env) click to toggle source
# File lib/namira/middleware/header.rb, line 24
def additional_headers(env)
  {
    'User-Agent' => env.config[:user_agent]
  }
end
convert_headers(headers) click to toggle source
# File lib/namira/middleware/header.rb, line 30
def convert_headers(headers)
  headers.each_with_object({}) do |(key, value), obj|
    header = key.to_s.split(/-|_/).map(&:capitalize).join('-')
    obj[header] = value
  end
end