Module: SolidusSupport::EngineExtensions::ClassMethods

Defined in:
lib/solidus_support/engine_extensions.rb

Instance Method Summary collapse

Instance Method Details

#activateObject



21
22
23
24
25
26
27
28
29
30
31
# File 'lib/solidus_support/engine_extensions.rb', line 21

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

#load_solidus_decorators_from(path) ⇒ Object

Loads decorator files.

This is needed since they are never explicitly referenced in the application code and won’t be loaded by default. We need them to be executed regardless in order to decorate existing classes.



38
39
40
41
42
# File 'lib/solidus_support/engine_extensions.rb', line 38

def load_solidus_decorators_from(path)
  path.glob('**/*.rb') do |decorator_path|
    require_dependency(decorator_path)
  end
end