class AppNameHeader::FaradayMiddleware

Constants

Public Class Methods

default_name() click to toggle source
# File lib/app_name_header/faraday_middleware.rb, line 7
def self.default_name
  @default_name ||= Rails.application.class.name.split("::").first.underscore if defined?(Rails)
end
new(app, options = nil) click to toggle source
Calls superclass method
# File lib/app_name_header/faraday_middleware.rb, line 11
def initialize(app, options = nil)
  super(app)
  @options = default_options.merge(options || {})
end

Public Instance Methods

call(env) click to toggle source
# File lib/app_name_header/faraday_middleware.rb, line 16
def call(env)
  set_header(env) if needs_header?(env)
  @app.call(env)
end

Private Instance Methods

default_options() click to toggle source
# File lib/app_name_header/faraday_middleware.rb, line 31
def default_options
  { name: self.class.default_name, header: HEADER }
end
needs_header?(env) click to toggle source
# File lib/app_name_header/faraday_middleware.rb, line 23
def needs_header?(env)
  @options[:name] && !env[:request_headers][@options[:header]]
end
set_header(env) click to toggle source
# File lib/app_name_header/faraday_middleware.rb, line 27
def set_header(env)
  env[:request_headers][@options[:header]] = @options[:name]
end