Module: Ace::Bundle::Atoms::PresetListFormatter

Defined in:
lib/ace/bundle/atoms/preset_list_formatter.rb

Overview

Formats preset list for display

Pure function that takes preset data and returns formatted strings. Used by the List command to display available presets.

Class Method Summary collapse

Class Method Details

.empty_messageArray<String>

Message when no presets are found

Returns:

  • (Array<String>)

    Help message lines



34
35
36
37
38
39
40
# File 'lib/ace/bundle/atoms/preset_list_formatter.rb', line 34

def self.empty_message
  [
    "No presets found in .ace/bundle/presets/",
    "Create markdown files with YAML frontmatter in .ace/bundle/presets/ to define presets.",
    "Example presets are available in the ace-bundle gem at .ace-defaults/bundle/"
  ]
end

.format(presets) ⇒ Array<String>

Format a list of presets for display

Parameters:

  • presets (Array<Hash>)

    Array of preset data hashes

Returns:

  • (Array<String>)

    Formatted lines ready for output



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/ace/bundle/atoms/preset_list_formatter.rb', line 15

def self.format(presets)
  return empty_message if presets.empty?

  lines = ["Available presets:"]

  presets.each do |preset|
    lines << "  #{preset[:name]}"
    lines << "    Description: #{preset[:description]}" if preset[:description]
    lines << "    Default output: #{preset[:output] || "stdio"}"
    lines << "    Source: #{preset[:source_file]}" if preset[:source_file]
    lines << ""
  end

  lines
end