class
AssetPipeline::Stimulus::StimulusRenderer
Overview
The StimulusRenderer extends ScriptRenderer to provide Stimulus-specific functionality.
It automatically detects Stimulus controller imports, generates proper controller registration,
and handles Stimulus application initialization.
This renderer can parse custom JavaScript blocks to:
- Detect
Stimulus.register("name", ControllerClass)patterns - Identify controller import statements
- Generate proper Stimulus application setup
- Handle Stimulus-specific initialization code
Performance optimizations:
- Caches controller detection results to avoid re-parsing import maps
- Caches generated script content for identical configurations
- Memoizes controller-to-stimulus-id conversions
Defined in:
asset_pipeline/stimulus/stimulus_renderer.crConstructors
-
.new(import_map : ImportMap, custom_javascript_block : String = "", stimulus_application_name : String = "application")
Initialize the StimulusRenderer with an import map, custom JavaScript block, and application name
Instance Method Summary
-
#cache_efficiency : Hash(String, Float64)
Returns the current cache hit ratio for performance monitoring
-
#cache_stats : Hash(String, Int32)
Performance monitoring methods Returns cache statistics for monitoring performance
-
#clear_caches
Clears all performance caches (useful for testing or memory management)
-
#generate_stimulus_script_content : String
Generates the complete Stimulus script content without wrapping tags
-
#render_stimulus_initialization_script : String
Renders a complete Stimulus initialization script
Instance methods inherited from class AssetPipeline::ScriptRenderer
analyze_code_complexity
analyze_code_complexity,
analyze_dependencies_with_suggestions : Hash(Symbol, Array(String))
analyze_dependencies_with_suggestions,
cache_efficiency : Hash(String, Float64)
cache_efficiency,
cache_stats : Hash(String, Int32)
cache_stats,
clear_caches
clear_caches,
dependency_analyzer : DependencyAnalyzer | Nil
dependency_analyzer,
generate_development_report : String
generate_development_report,
generate_import_statements : String
generate_import_statements,
generate_script_content : String
generate_script_content,
get_import_suggestions : Array(String)
get_import_suggestions,
render_initialization_script : String
render_initialization_script,
uses_module_syntax? : Bool
uses_module_syntax?,
validate_configuration : Hash(String, Array(String))
validate_configuration
Constructor methods inherited from class AssetPipeline::ScriptRenderer
new(import_map : ImportMap, custom_javascript_block : String = "", enable_dependency_analysis : Bool = true)
new
Constructor Detail
Initialize the StimulusRenderer with an import map, custom JavaScript block, and application name
renderer = StimulusRenderer.new(import_map, "Stimulus.register('hello', HelloController);", "application")
Instance Method Detail
Returns the current cache hit ratio for performance monitoring
Performance monitoring methods Returns cache statistics for monitoring performance
Generates the complete Stimulus script content without wrapping tags
Renders a complete Stimulus initialization script
Returns a script tag containing:
- Stimulus core imports
- Controller imports (automatically detected)
- Stimulus application initialization
- Controller registrations
- Custom JavaScript initialization block