Class: RailsAiBridge::Serializers::Providers::CopilotSerializer

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

Overview

Generates GitHub Copilot instruction markdown (.github/copilot-instructions.md or compact variant). In +:compact+ mode (default), output includes MCP tool reference and Copilot-specific header. In +:full+ mode, delegates to MarkdownSerializer with Copilot header and footer formatters.

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_key_config_files, #render_key_considerations, #render_key_models, #render_notable_gems, #render_stack_overview

Constructor Details

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

Returns a new instance of CopilotSerializer.

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/copilot_serializer.rb', line 12

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

Instance Method Details

#callString

Returns Markdown for .github/copilot-instructions.md (full mode) or compact Copilot context (compact mode).

Returns:

  • (String)

    Markdown for .github/copilot-instructions.md (full mode) or compact Copilot context (compact mode).



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

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