class SecureHeaders::ReferrerPolicy

Constants

DEFAULT_VALUE
HEADER_NAME
VALID_POLICIES

Public Class Methods

make_header(config = nil, user_agent = nil) click to toggle source

Public: generate an Referrer Policy header.

Returns a default header if no configuration is provided, or a header name and value based on the config.

# File lib/secure_headers/headers/referrer_policy.rb, line 23
def make_header(config = nil, user_agent = nil)
  return if config == OPT_OUT
  config ||= DEFAULT_VALUE
  [HEADER_NAME, Array(config).join(", ")]
end
validate_config!(config) click to toggle source
# File lib/secure_headers/headers/referrer_policy.rb, line 29
def validate_config!(config)
  case config
  when nil, OPT_OUT
    # valid
  when String, Array
    config = Array(config)
    unless config.all? { |t| t.is_a?(String) && VALID_POLICIES.include?(t.downcase) }
      raise ReferrerPolicyConfigError.new("Value can only be one or more of #{VALID_POLICIES.join(", ")}")
    end
  else
    raise TypeError.new("Must be a string or array of strings. Found #{config.class}: #{config}")
  end
end