Configurando variáveis de ambiente para teste e desenvolvimento

Estou pensando em adicionar o gem dotenv (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) ao meu plugin para fins de teste e desenvolvimento. Isso permitirá que eu configure facilmente minhas variáveis de ambiente por ambiente.

Estava me perguntando se estou deixando algo passar e se existe uma maneira melhor de fazer isso?

O que você está tentando carregar? Você pode definir

DISCOURSE_SETTING_NAME=valor

para todas as Configurações do Site.

Isso ajudaria?

Infelizmente não. Estou trabalhando em um plugin privado e preciso definir uma variável de ambiente para dados sensíveis, para não incluí-los no controle de versão.

Não há problema em definir essa variável de ambiente no servidor de produção, mas quero ser capaz de carregá-la no ambiente de teste ao executar testes, por exemplo. Poderia especificá-la na linha de comando, mas idealmente gostaria de uma solução mais escalável.

O motivo da minha postagem é que adicionar esse gem parece inadequado. Eu presumiria que o Discourse já teria uma solução para esse problema.

Então, acho que você pode definir variáveis de ambiente como

 DISCOURSE_MY_PLUGIN_SETTING

Para testes, acredito que você possa definir GlobalSetting.my_plugin_setting no spec, mas isso é apenas um palpite.

Obrigado, vou dar uma olhada no GlobalSetting

Você pode definir ENV['yourkey'] = 'yourval' no seu plugin e isso funciona. Eu usei hoje mesmo para testar meu código.

Além disso, é possível instalar gems específicas para modos. Ainda não testei pessoalmente, mas aqui está um exemplo: discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub