Class: RailsAiBridge::Serializers::Providers::RulesSerializer

Inherits:
BaseProviderSerializer show all
Defined in:
lib/rails_ai_bridge/serializers/providers/rules_serializer.rb

Overview

Generates compact, imperative-tone rules for legacy .cursorrules. In +:compact+ mode (default), output points editors at MCP tools and repo conventions. In +:full+ mode, delegates to MarkdownSerializer with rules-style header and footer.

Constant Summary

Constants inherited from BaseProviderSerializer

BaseProviderSerializer::MAX_CONFIG_FILES, BaseProviderSerializer::MAX_KEY_MODELS, BaseProviderSerializer::MAX_PATTERNS

Instance Attribute Summary

Attributes inherited from BaseProviderSerializer

#config, #context

Instance Method Summary collapse

Methods inherited from BaseProviderSerializer

#render_architecture, #render_commands, #render_footer, #render_header, #render_key_config_files, #render_key_considerations, #render_key_models, #render_notable_gems, #render_stack_overview

Constructor Details

#initialize(context, config: RailsAiBridge.configuration) ⇒ RulesSerializer

Returns a new instance of RulesSerializer.

Parameters:

  • context (Hash)

    The introspection context.

  • config (RailsAiBridge::Configuration) (defaults to: RailsAiBridge.configuration)

    The configuration object.



12
13
14
# File 'lib/rails_ai_bridge/serializers/providers/rules_serializer.rb', line 12

def initialize(context, config: RailsAiBridge.configuration)
  super
end

Instance Method Details

#callString

Returns Markdown for legacy .cursorrules (compact) or full Cursor-oriented document (full mode).

Returns:

  • (String)

    Markdown for legacy .cursorrules (compact) or full Cursor-oriented document (full mode).



17
18
19
20
21
22
23
24
25
# File 'lib/rails_ai_bridge/serializers/providers/rules_serializer.rb', line 17

def call
  if @config.context_mode == :full
    MarkdownSerializer.new(context,
                           header_class: Formatters::Providers::RulesHeaderFormatter,
                           footer_class: Formatters::Providers::RulesFooterFormatter).call
  else
    render_compact
  end
end