From 51c3c42c1d076a885fd18ea0f7df569ece1a5f1d Mon Sep 17 00:00:00 2001 From: Alberto Vena Date: Wed, 15 Apr 2020 15:43:43 +0200 Subject: [PATCH] Push decorators to autoload path using config.autoload_paths This ensures that decorators are being correctly reloaded when some code in the application changes. --- lib/solidus_support/engine_extensions.rb | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/solidus_support/engine_extensions.rb b/lib/solidus_support/engine_extensions.rb index aa4baa6..6bfa5c4 100644 --- a/lib/solidus_support/engine_extensions.rb +++ b/lib/solidus_support/engine_extensions.rb @@ -9,6 +9,10 @@ def self.included(engine) engine.extend ClassMethods engine.class_eval do + solidus_decorators_root.glob('*') do |decorators_folder| + config.autoload_paths += [decorators_folder] + end + config.to_prepare(&method(:activate)) enable_solidus_engine_support('backend') if SolidusSupport.backend_available? @@ -19,14 +23,6 @@ def self.included(engine) module ClassMethods def activate - if Rails.respond_to?(:autoloaders) && Rails.autoloaders.main - # Add decorators folder to the Rails autoloader. This tells Zeitwerk to treat paths - # such as app/decorators/controllers as roots. - solidus_decorators_root.glob('*') do |decorators_folder| - Rails.autoloaders.main.push_dir(decorators_folder) - end - end - load_solidus_decorators_from(solidus_decorators_root) end