83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/spring/application.rb', line 83
def preload
log "preloading app"
begin
require "spring/commands"
ensure
start_watcher
end
require Spring.application_root_path.join("config", "application")
unless Rails.respond_to?(:gem_version) && Rails.gem_version >= Gem::Version.new('6.0.0')
raise "Spring only supports Rails >= 6.0.0"
end
Rails::Application.initializer :ensure_reloading_is_enabled, group: :all do
if Rails.application.config.cache_classes
raise <<-MSG.strip_heredoc
Spring reloads, and therefore needs the application to have reloading enabled.
Please, set config.cache_classes to false in config/environments/#{Rails.env}.rb.
MSG
end
end
require Spring.application_root_path.join("config", "environment")
disconnect_database
@preloaded = :success
rescue Exception => e
@preloaded = :failure
watcher.add e.backtrace.map { |line| line[/^(.*)\:\d+/, 1] }
raise e unless initialized?
ensure
watcher.add loaded_application_features
watcher.add Spring.gemfile, Spring.gemfile_lock
if defined?(Rails) && Rails.application
watcher.add Rails.application.paths["config/initializers"]
watcher.add Rails.application.paths["config/database"]
if secrets_path = Rails.application.paths["config/secrets"]
watcher.add secrets_path
end
end
end
|