Class: Ask::Skills::Formatter

Inherits:
Object
  • Object
show all
Defined in:
lib/ask/skills/formatter.rb

Instance Method Summary collapse

Constructor Details

#initialize(skills) ⇒ Formatter

Returns a new instance of Formatter.



4
5
6
# File 'lib/ask/skills/formatter.rb', line 4

def initialize(skills)
  @skills = skills.respond_to?(:skills) ? skills.skills : skills
end

Instance Method Details

#to_prompt_sectionObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/ask/skills/formatter.rb', line 8

def to_prompt_section
  return "" if @skills.empty? || @skills.values.all? { |s| s.is_a?(Array) && s.empty? }

  lines = ["", "## Available Skills", ""]
  @skills.each_value do |skill|
    lines << skill.to_prompt_entry
  end
  lines << ""
  lines << "When a task matches a skill's description, load it for step-by-step methodology."
  lines << ""
  lines.join("\n")
end

#to_xmlObject



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ask/skills/formatter.rb', line 21

def to_xml
  return "" if @skills.empty?

  lines = ["", "<available_skills>"]
  @skills.each_value do |skill|
    lines << "  <skill>"
    lines << "    <name>#{escape_xml(skill.name)}</name>"
    lines << "    <description>#{escape_xml(skill.description)}</description>"
    lines << "  </skill>"
  end
  lines << "</available_skills>"
  lines.join("\n")
end