Class: RailsAiBridge::Serializers::Providers::CopilotInstructionsSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/serializers/providers/copilot_instructions_serializer.rb

Overview

Generates .github/instructions/*.instructions.md files with applyTo front matter for GitHub Copilot path-scoped instructions.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ CopilotInstructionsSerializer

Returns a new instance of CopilotInstructionsSerializer.

Parameters:



13
14
15
# File 'lib/rails_ai_bridge/serializers/providers/copilot_instructions_serializer.rb', line 13

def initialize(context)
  @context = context
end

Instance Attribute Details

#context ⇒ Hash (readonly)

Returns Introspection context passed to serializers.

Returns:

  • (Hash) —

    Introspection context passed to serializers.



10
11
12
# File 'lib/rails_ai_bridge/serializers/providers/copilot_instructions_serializer.rb', line 10

def context
  @context
end

Instance Method Details

#call(output_dir) ⇒ Hash<Symbol, Array<String>>

Writes models, controllers, and MCP instruction files under .github/instructions/.

Parameters:

  • output_dir (String) —

    Root directory where .github/instructions is created.

Returns:

  • (Hash<Symbol, Array<String>>) —

    :written and :skipped arrays of absolute file paths.



21
22
23
24
25
26
27
28
29
# File 'lib/rails_ai_bridge/serializers/providers/copilot_instructions_serializer.rb', line 21

def call(output_dir)
  files = {
    'rails-models.instructions.md' => render_models_instructions,
    'rails-controllers.instructions.md' => render_controllers_instructions,
    'rails-mcp-tools.instructions.md' => render_mcp_tools_instructions
  }

  RuleFileWriter.new(File.join(output_dir, '.github', 'instructions')).call(files)
end