Module: RailsAiBridge::Serializers::ProviderDocumentHeader
- Defined in:
- lib/rails_ai_bridge/serializers/provider_document_header.rb
Overview
Builds shared markdown headers for provider context files (full-mode Markdown output).
Class Method Summary collapse
-
.call(context:, document_title:, intro:, layout:) ⇒ String
Renders a document header with title, metadata lines, and intro body.
-
.rules_banner(context:) ⇒ String
Minimal header for +.cursorrules+ full-mode project rules (no blockquote metadata).
Class Method Details
.call(context:, document_title:, intro:, layout:) ⇒ String
Renders a document header with title, metadata lines, and intro body.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_ai_bridge/serializers/provider_document_header.rb', line 17 def call(context:, document_title:, intro:, layout:) app = context[:app_name] rails_v = context[:rails_version] ruby_v = context[:ruby_version] version = RailsAiBridge::VERSION = case layout when :ai_context generated = context[:generated_at] [ "> Auto-generated by rails-ai-bridge v#{version}", "> Generated: #{generated}", "> Rails #{rails_v} | Ruby #{ruby_v}" ] when :instructions [ "> Rails #{rails_v} | Ruby #{ruby_v}", "> Auto-generated by rails-ai-bridge v#{version}" ] else raise ArgumentError, "unknown header layout: #{layout.inspect}" end <<~MD # #{app} — #{document_title} #{.join("\n")} #{intro.rstrip} MD end |
.rules_banner(context:) ⇒ String
Minimal header for +.cursorrules+ full-mode project rules (no blockquote metadata).
54 55 56 57 58 59 60 |
# File 'lib/rails_ai_bridge/serializers/provider_document_header.rb', line 54 def (context:) <<~MD # #{context[:app_name]} — Project Rules Rails #{context[:rails_version]} | Ruby #{context[:ruby_version]} MD end |