Class: RailsAiBridge::Tools::ModelDetails::SummaryFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/tools/model_details/summary_formatter.rb

Overview

Renders a bare list of ActiveRecord model names with optional semantic-tier annotations.

Instance Method Summary collapse

Constructor Details

#initialize(models:, non_ar_models: nil) ⇒ SummaryFormatter

Returns a new instance of SummaryFormatter.

Parameters:

  • models (Hash{String => Hash})

    model name => introspection payload (may include +:semantic_tier+)

  • non_ar_models (Hash, nil) (defaults to: nil)

    optional +:non_ar_models+ section; appended via NonArModelsAppendix



10
11
12
13
# File 'lib/rails_ai_bridge/tools/model_details/summary_formatter.rb', line 10

def initialize(models:, non_ar_models: nil)
  @models = models
  @non_ar_models = non_ar_models
end

Instance Method Details

#callString

Builds Markdown with header # Available models (N), sorted ActiveRecord bullets, footer, and optional POJO appendix.

Returns:

  • (String)

    Markdown document



18
19
20
21
22
23
24
25
26
27
# File 'lib/rails_ai_bridge/tools/model_details/summary_formatter.rb', line 18

def call
  model_list = @models.keys.sort.map do |m|
    data = @models[m]
    tier = data.is_a?(Hash) ? data[:semantic_tier] : nil
    suffix = tier.present? ? " (#{tier})" : ''
    "- #{m}#{suffix}"
  end.join("\n")
  base = "# Available models (#{@models.size})\n\n#{model_list}\n\n_Use `model:\"Name\"` for full detail._"
  base + NonArModelsAppendix.append_markdown(@non_ar_models)
end