Ruby validated environment configuration

Ruby
def env_config(env = ENV)
  port = Integer(env.fetch('PORT', '3000'), 10)
  raise ArgumentError, 'PORT must be between 1 and 65535' unless (1..65_535).cover?(port)
  mode = env.fetch('APP_ENV', 'development').to_sym
  valid_modes = %i[development test production]
  raise ArgumentError, %Q(APP_ENV must be one of #{valid_modes.join(', ')}) unless valid_modes.include?(mode)
  debug = env.fetch('DEBUG', 'false')
  raise ArgumentError, 'DEBUG must be true or false' unless %w[true false].include?(debug)
  workers = Integer(env.fetch('WORKERS', '4'), 10)
  raise ArgumentError, 'WORKERS must be at least 1' unless workers.positive?
  { port: port, mode: mode, debug: debug == 'true', workers: workers }
end