diff --git a/app/models/application_settings.rb b/app/models/application_settings.rb index db93032dd..543fe606b 100644 --- a/app/models/application_settings.rb +++ b/app/models/application_settings.rb @@ -1,4 +1,7 @@ # frozen_string_literal: true class ApplicationSettings < Settings + def load_values_from_env + ENV.select { |name, _| name =~ /^APP_STTG_[A-Z0-9_]*/ }.transform_keys(&:downcase) + end end diff --git a/app/models/settings.rb b/app/models/settings.rb index a31ca220a..ca3d4d373 100644 --- a/app/models/settings.rb +++ b/app/models/settings.rb @@ -4,4 +4,16 @@ class Settings < ApplicationRecord def self.instance first || new end + + def values + merged_values = super + self.class.instance_methods(false).grep(/^load_values_from_[A-Z0-9_]*/).each do |method| + merged_values = merged_values.merge(public_send(method)) + end + merged_values + end + + def load_values_from_env + raise NotImplementedError + end end