Variáveis ​​ENV ausentes retornam mais cedo

Esta é uma maneira rápida de escapar de um método ou inicializador quando uma variável ENV necessária está faltando e fornecer uma mensagem de erro útil.

required_vars = %w(FOO BAR BAZ QUUX)
missing_vars
= required_vars - ENV.keys
raise
ArgumentError.new("The following ENV variables are required: #{missing_vars}") if missing_vars.any?

Usando o subtractmétodo embutido do Ruby Array , obtemos a diferença entre a lista de variáveis ​​que exigimos e aquelas definidas.

Você também pode usar isso para se proteger contra a falta de opções nos métodos.