Module: RailsAiBridge::Tools::ModelDetails::NonArModelsAppendix
- Defined in:
- lib/rails_ai_bridge/tools/model_details/non_ar_models_appendix.rb
Overview
Shared Markdown helpers for appending non-ActiveRecord +app/models+ classes to GetModelDetails output and Claude rules files.
Constant Summary collapse
- DEFAULT_TAG =
Fallback tag when a row omits +:tag+.
'POJO/Service'- SECTION_TITLE =
Human-readable subsection title embedded in the generated Markdown heading.
'POJO/Service under app/models'
Class Method Summary collapse
-
.append_markdown(section) ⇒ String
Appends a "## Non-ActiveRecord classes (...)" Markdown block when rows exist.
-
.entries_from(section) ⇒ Array<Hash>
Normalizes the +:non_ar_models+ introspector payload into an array of row hashes.
Class Method Details
.append_markdown(section) ⇒ String
Appends a "## Non-ActiveRecord classes (...)" Markdown block when rows exist.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/rails_ai_bridge/tools/model_details/non_ar_models_appendix.rb', line 36 def append_markdown(section) rows = entries_from(section) return '' if rows.empty? lines = ['', "## Non-ActiveRecord classes (#{SECTION_TITLE})", ''] rows.each do |row| name = row[:name] || row['name'] path = row[:relative_path] || row['relative_path'] tag = row[:tag] || row['tag'] || DEFAULT_TAG lines << "- **[#{tag}]** `#{name}` — `#{path}`" end lines << '' lines.join("\n") end |
.entries_from(section) ⇒ Array<Hash>
Normalizes the +:non_ar_models+ introspector payload into an array of row hashes.
25 26 27 28 29 30 |
# File 'lib/rails_ai_bridge/tools/model_details/non_ar_models_appendix.rb', line 25 def entries_from(section) return [] unless section.is_a?(Hash) return [] if section[:error].present? || section['error'].present? Array(section[:non_ar_models] || section['non_ar_models']) end |