テストおよび開発用の環境変数の設定

プラグインのテストや開発用に、dotenv gem (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) を追加しようと考えています。これにより、環境ごとに環境変数を簡単に設定できるようになります。

何か見落としている点や、より良い方法があるかどうかご教示いただけますでしょうか?

何をロードしようとしていますか?すべての SiteSettings に対して

DISCOURSE_SETTING_NAME=value

と設定できます。

これで解決しますか?

残念ながら、その方法ではできません。私はプライベートなプラグインを開発中で、機密データをソース管理にコミットしないようにするために、環境変数を設定する必要があります。

本番サーバーでその環境変数を設定するのは問題ありませんが、テスト実行時など、テスト環境でもこれをロードできるようにしたいと考えています。インラインで指定することも可能ですが、できればよりスケーラブルな解決策を望んでいます。

私が投稿した理由は、その gem を追加することに違和感を覚えたからです。Discourse には既にこの問題に対する解決策があるはずだと思っていたからです。

次に、以下のような環境変数を設定できると思います。

 DISCOURSE_MY_PLUGIN_SETTING

テストの場合は、spec 内で GlobalSetting.my_plugin_setting を設定するかもしれませんが、これはあくまで推測です。

ありがとうございます。GlobalSetting を確認させていただきます。

プラグイン内で ENV['yourkey'] = 'yourval' を設定すれば動作します。私は本日、コードのテストのためにこれを使用しました。

また、モード固有の gem をインストールすることもできます。私はまだ試していませんが、例を以下に示します。discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub