class ViewComponent::Compiler
def compile(raise_errors: false, force: false)
def compile(raise_errors: false, force: false) return if compiled? && !force return if @component == ViewComponent::Base gather_templates if self.class.development_mode && @templates.any?(&:requires_compiled_superclass?) @component.superclass.compile(raise_errors: raise_errors) end if template_errors.present? raise TemplateError.new(template_errors) if raise_errors # this return is load bearing, and prevents the component from being considered "compiled?" return false end if raise_errors @component.validate_initialization_parameters! @component.validate_collection_parameter! end define_render_template_for @component.register_default_slots @component.build_i18n_backend CompileCache.register(@component) end