lib/anyway/rails/config.rb in anyway_config-2.0.0.pre2 vs lib/anyway/rails/config.rb in anyway_config-2.0.0.rc1
- old
+ new
@@ -9,79 +9,12 @@
# - load data from secrets
# - recognize Rails env when loading from YML
module Config
module ClassMethods
# Make defaults to be a Hash with indifferent access
- def defaults
- return @defaults if instance_variable_defined?(:@defaults)
-
- @defaults = super.with_indifferent_access
+ def new_empty_config
+ {}.with_indifferent_access
end
- end
-
- def load_from_sources(**options)
- base_config = {}.with_indifferent_access
- each_source(options) do |config|
- base_config.deep_merge!(config) if config
- end
- base_config
- end
-
- def each_source(options)
- yield load_from_file(options)
- yield load_from_secrets(options)
- yield load_from_credentials(options)
- yield load_from_env(options)
- end
-
- def load_from_file(name:, config_path:, env_prefix:, **_options)
- file_config = load_from_yml(config_path)[::Rails.env] || {}
-
- if Anyway::Settings.use_local_files
- local_config_path = config_path.sub(/\.yml/, ".local.yml")
- file_config.deep_merge!(load_from_yml(local_config_path) || {})
- end
-
- file_config
- end
-
- def load_from_secrets(name:, **_options)
- return unless ::Rails.application.respond_to?(:secrets)
-
- ::Rails.application.secrets.public_send(name)
- end
-
- def load_from_credentials(name:, **_options)
- # do not load from credentials if we're in the context
- # of the `credentials:edit` command
- return if defined?(::Rails::Command::CredentialsCommand)
-
- return unless ::Rails.application.respond_to?(:credentials)
-
- # Create a new hash cause credentials are mutable!
- creds_config = {}
-
- creds_config.deep_merge!(::Rails.application.credentials.public_send(name) || {})
-
- creds_config.deep_merge!(load_from_local_credentials(name: name) || {}) if Anyway::Settings.use_local_files
- creds_config
- end
-
- def load_from_local_credentials(name:)
- local_creds_path = ::Rails.root.join("config/credentials/local.yml.enc").to_s
-
- return unless File.file?(local_creds_path)
-
- creds = ::Rails.application.encrypted(
- local_creds_path,
- key_path: ::Rails.root.join("config/credentials/local.key")
- )
-
- creds.public_send(name)
- end
-
- def default_config_path(name)
- ::Rails.root.join("config", "#{name}.yml")
end
end
end
end