Class: RailsAiBridge::Serializers::Providers::CursorRulesSerializer

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

Overview

Generates .cursor/rules/*.mdc files in the Cursor MDC format (YAML frontmatter, focused bodies). Complements legacy .cursorrules from RulesSerializer.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context) ⇒ CursorRulesSerializer

Returns a new instance of CursorRulesSerializer.

Parameters:



13
14
15
# File 'lib/rails_ai_bridge/serializers/providers/cursor_rules_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/cursor_rules_serializer.rb', line 10

def context
  @context
end

Instance Method Details

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

Writes MDC rule files under .cursor/rules/ when content changes.

Parameters:

  • output_dir (String) —

    Root directory where .cursor/rules is created.

Returns:

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

    :written and :skipped arrays of absolute file paths.



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

def call(output_dir)
  files = {
    'rails-engineering.mdc' => render_engineering_rule,
    'rails-project.mdc' => render_project_rule,
    'rails-models.mdc' => render_models_rule,
    'rails-controllers.mdc' => render_controllers_rule,
    'rails-mcp-tools.mdc' => render_mcp_tools_rule
  }

  RuleFileWriter.new(File.join(output_dir, '.cursor', 'rules')).call(files)
end