Sha256: 31ccd6793daa9319881b47f7ba1c43713ffc04bf08d9ab083cb54fabff622d2a
Contents?: true
Size: 1.51 KB
Versions: 6
Compression:
Stored size: 1.51 KB
Contents
# frozen_string_literal: true module UltraSettings # Railtie to automatically configure settings for Rails applications. # By default this will automatically load any configuration classes in the # app/configurations directory. This can be customized by setting the # `config.ultra_settings.auto_load_directories` option. class Railtie < Rails::Railtie config.ultra_settings = ActiveSupport::OrderedOptions.new config.ultra_settings.auto_load_directories = [File.join("app", "configurations")] config.before_configuration do UltraSettings.yaml_config_env = Rails.env UltraSettings.yaml_config_path = Rails.root.join("config") end # Automatically register any configuration classes in the app/configurations # directory. The path to load can be customized by setting the # `config.ultra_settings.auto_load_directory` option. config.after_initialize do Array(Rails.application.config.ultra_settings.auto_load_directories).each do |directory| next unless directory app_config_dir = Rails.root.join(directory) app_config_dir.glob("**/*_configuration.rb").each do |file_path| relative_path = file_path.relative_path_from(app_config_dir).to_s class_name = relative_path.chomp(".rb").classify unless UltraSettings.added?(class_name) config_name = class_name.delete_suffix("Configuration").underscore.tr("/", "_") UltraSettings.add(config_name, class_name) end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems