class SecureHeaders::StrictTransportSecurity

Public Class Methods

new(config = nil) click to toggle source
# File lib/secure_headers/headers/strict_transport_security.rb, line 14
def initialize(config = nil)
  @config = config
  validate_config unless @config.nil?
end

Public Instance Methods

name() click to toggle source
# File lib/secure_headers/headers/strict_transport_security.rb, line 19
def name
  return HSTS_HEADER_NAME
end
value() click to toggle source
# File lib/secure_headers/headers/strict_transport_security.rb, line 23
def value
  case @config
  when String
    return @config
  when NilClass
    return DEFAULT_VALUE
  end

  max_age = @config.fetch(:max_age, HSTS_MAX_AGE)
  value = "max-age=" + max_age.to_s
  value += "; includeSubdomains" if @config[:include_subdomains]
  value += "; preload" if @config[:preload]

  value
end

Private Instance Methods

validate_config() click to toggle source
# File lib/secure_headers/headers/strict_transport_security.rb, line 41
def validate_config
  if @config.is_a? Hash
    if !@config[:max_age]
      raise STSBuildError.new("No max-age was supplied.")
    elsif @config[:max_age].to_s !~ /\A\d+\z/
      raise STSBuildError.new("max-age must be a number. #{@config[:max_age]} was supplied.")
    end
  else
    @config = @config.to_s
    raise STSBuildError.new(MESSAGE) unless @config =~ VALID_STS_HEADER
  end
end