From eb834811dc029faa059595e72294d418fb74d0a1 Mon Sep 17 00:00:00 2001 From: Eugene Kenny Date: Sun, 25 Feb 2018 00:54:27 +0000 Subject: Use lazy load hook to configure ActiveStorage::Blob `to_prepare` callbacks are run during initialization; using one here meant that `ActiveStorage::Blob` would be loaded when the app boots, which would in turn load `ActiveRecord::Base`. By using a lazy load hook to configure `ActiveStorage::Blob` instead, we can avoid loading `ActiveRecord::Base` unnecessarily. --- railties/test/application/loading_test.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'railties/test') diff --git a/railties/test/application/loading_test.rb b/railties/test/application/loading_test.rb index 2632dd7cde..889ad16fb8 100644 --- a/railties/test/application/loading_test.rb +++ b/railties/test/application/loading_test.rb @@ -359,6 +359,18 @@ class LoadingTest < ActiveSupport::TestCase assert_predicate Rails.application, :initialized? end + test "frameworks aren't loaded during initialization" do + app_file "config/initializers/raise_when_frameworks_load.rb", <<-RUBY + %i(action_controller action_mailer active_job active_record).each do |framework| + ActiveSupport.on_load(framework) { raise "\#{framework} loaded!" } + end + RUBY + + assert_nothing_raised do + require "#{app_path}/config/environment" + end + end + private def setup_ar! -- cgit v1.2.3