Module: ActiveSupport::Dependencies
- Defined in:
- lib/brick/extensions.rb
Class Method Summary collapse
-
._brick_autoload_module! ⇒ Object
%%% Probably a little more targeted than other approaches we’ve taken thusfar This happens before the whole parent check.
- .autoload_module!(*args) ⇒ Object
Class Method Details
._brick_autoload_module! ⇒ Object
%%% Probably a little more targeted than other approaches we’ve taken thusfar This happens before the whole parent check
1342 |
# File 'lib/brick/extensions.rb', line 1342 alias _brick_autoload_module! autoload_module! |
.autoload_module!(*args) ⇒ Object
1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 |
# File 'lib/brick/extensions.rb', line 1343 def autoload_module!(*args) into, const_name, qualified_name, path_suffix = args if (base_class_name = ::Brick.config.sti_namespace_prefixes&.fetch("::#{into.name}::", nil)) base_class_name = "::#{base_class_name}" unless base_class_name.start_with?('::') end if (base_class = base_class_name&.constantize) ::Brick.sti_models[qualified_name] = { base: base_class } # Build subclass and place it into the specially STI-namespaced module into.const_set(const_name.to_sym, klass = Class.new(base_class)) # %%% used to also have: autoload_once_paths.include?(base_path) || autoloaded_constants << qualified_name unless autoloaded_constants.include?(qualified_name) klass elsif (base_class = ::Brick.config.sti_namespace_prefixes&.fetch("::#{const_name}", nil)&.constantize) begin # Attempt to find an existing implementation for this subclass base_class.module_parent.const_get(const_name) rescue # Build subclass and place it in the same module as its parent base_class.module_parent.const_set(const_name.to_sym, klass = Class.new(base_class)) end else _brick_autoload_module!(*args) end end |