<commit_before>if defined?(Rails::Railtie)
  module RailsConfig
    class Railtie < Rails::Railtie

      # Parse the settings before any of the initializers
      ActiveSupport.on_load :before_initialize, :yield => true do
        ::Settings = RailsConfig.load_files(
          Rails.root.join("config", "settings.yml").to_s,
          Rails.root.join("config", "settings", "#{Rails.env}.yml").to_s,
          Rails.root.join("config", "environments", "#{Rails.env}.yml").to_s
        )
      end

      # Rails Dev environment should reload the Settings on every request
      if Rails.env.development?
        initializer :rails_config_reload_on_development do
          ActionController::Base.class_eval do
            prepend_before_filter { ::Settings.reload! }
          end
        end
      end

    end
  end
end<commit_msg>Add the ability to define the settings object via config.rails_config.constant<commit_after>if defined?(Rails::Railtie)
  module RailsConfig
    class Railtie < Rails::Railtie
      config.rails_config = ActiveSupport::OrderedOptions.new

      # Parse the settings before any of the initializers
      ActiveSupport.on_load :before_initialize, :yield => true do
        settings = RailsConfig.load_files(
          Rails.root.join("config", "settings.yml").to_s,
          Rails.root.join("config", "settings", "#{Rails.env}.yml").to_s,
          Rails.root.join("config", "environments", "#{Rails.env}.yml").to_s
        )

        # setup the constant
        Kernel.const_set(app.config.rails_config.constant || "Settings", settings)
      end

      # Rails Dev environment should reload the Settings on every request
      if Rails.env.development?
        initializer :rails_config_reload_on_development do
          ActionController::Base.class_eval do
            prepend_before_filter { ::Settings.reload! }
          end
        end
      end

    end
  end
end
{'fraction_non_alphanumeric': 0.10020986358866736, 'fraction_numerical': 0.0, 'mean_word_length': 2.7539370078740157, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3072806', 'n_tokens_mistral': 575, 'n_tokens_neox': 529, 'n_words': 128}