Impostazione delle variabili di ambiente per test e sviluppo

Sto pensando di aggiungere il gem dotenv (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) al mio plugin per scopi di test e sviluppo. In questo modo potrò impostare facilmente le variabili d’ambiente in base all’ambiente.

Mi chiedevo se mi stia sfuggendo qualcosa e se esista un modo migliore per raggiungere questo obiettivo?

Cosa stai cercando di caricare? Puoi impostare

DISCOURSE_SETTING_NAME=valore

per tutte le impostazioni del sito.

Questo potrebbe aiutarti?

Purtroppo no. Sto lavorando a un plugin privato e devo impostare una variabile d’ambiente per i dati sensibili, in modo da non includerli nel controllo del codice sorgente.

Non c’è problema nell’impostare questa variabile d’ambiente sul server di produzione, ma vorrei poterla caricare anche nell’ambiente di test, ad esempio quando eseguo i test. Potrei specificarla in linea, ma idealmente preferirei una soluzione più scalabile.

Il motivo per cui ho pubblicato è che aggiungere quel gem mi sembra sbagliato; avrei dato per scontato che Discourse avesse già una soluzione per questo problema.

Allora, penso che tu possa impostare variabili d’ambiente come

 DISCOURSE_MY_PLUGIN_SETTING

Per i test, penso che tu possa impostare GlobalSetting.my_plugin_setting nello spec, ma è solo una supposizione.

Grazie, darò un’occhiata a GlobalSetting

Puoi impostare ENV['yourkey'] = 'yourval' nel tuo plugin e funziona. L’ho usato proprio oggi per testare il mio codice.

Inoltre, puoi installare gemme specifiche per le modalità. Non l’ho ancora provato io stesso, ma ecco un esempio: discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub