Class: Panda::Core::ModuleRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/panda/core/module_registry.rb

Overview

Module registry for Panda ecosystem components

This class maintains a registry of all Panda modules (CMS, CMS Pro, Community, etc.) and their asset paths. Each module self-registers during engine initialization.

Benefits:

  • Core doesn't need hardcoded knowledge of other modules
  • Supports private modules (e.g., panda-community in development)
  • Single source of truth for asset compilation
  • Scales automatically to future modules

Usage:

# In module's engine.rb (after class definition):
Panda::Core::ModuleRegistry.register(
gem_name: 'panda-cms',
engine: 'Panda::CMS::Engine',
paths: {
  views: 'app/views/panda/cms/**/*.erb',
  components: 'app/components/panda/cms/**/*.rb',
  stylesheets: 'app/assets/stylesheets/panda/cms/**/*.css'
}
)

Defined Under Namespace

Classes: JavaScriptMiddleware

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.modulesHash (readonly)

Returns all registered modules

Returns:

  • (Hash)

    Module registry



50
51
52
# File 'lib/panda/core/module_registry.rb', line 50

def modules
  @modules
end

Class Method Details

.combined_importmapHash

Returns a combined importmap for all registered modules

This merges importmaps from Core and all registered modules (CMS, CMS Pro, etc.) into a single hash suitable for