テスト環境、開発環境、ステージング環境、本番環境のいずれにいるかによって、動作が異なるクリーンな方法を探しています。
私の質問は一般的ですが、私が持っている最も具体的な例は通知の送信です。Userモデルオブジェクトにnotifyという関数があるとしましょう
def notify(message)
#send a notification to the user (differs depending on the environment)
end
テスト環境では、通知をファイルに保存するだけのモックオブジェクトを使用したいと思います。ステージング環境と本番環境では、実際にAPIリクエストをサードパーティのサービスに送信するPushNotificationオブジェクトを使用したいと思います。環境ごとに異なるAPIキーを使用する必要があります。
lib / notifiersにフォルダーを作成し、file_notifier.rbとpush_notifier.rbを作成することを考えていました。どこ(どのファイル)で、どのように正しい通知機能を初期化するのかわかりません。何か案は?
ありがとう!