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