Class: Diogenes::Targets::Cursor
- Defined in:
- lib/diogenes/targets/cursor.rb,
sig/generated/diogenes/targets/cursor.rbs
Constant Summary collapse
- OUTPUT_PATH =
: String
".cursor/rules/diogenes.mdc"
Instance Method Summary collapse
-
#build(sources:) ⇒ Array[String]
: (sources: untyped) -> Array.
-
#frontmatter ⇒ String
: () -> String.
-
#render(sources) ⇒ String
: (untyped) -> String.
-
#rules_block(rules) ⇒ String
: (Array) -> String.
-
#skills_block(skills) ⇒ String
: (Array) -> String.
Methods inherited from Base
#generated_banner, #initialize, #skill_file_content, #write, #write_skill_files
Constructor Details
This class inherits a constructor from Diogenes::Targets::Base
Instance Method Details
#build(sources:) ⇒ Array[String]
: (sources: untyped) -> Array
10 11 12 13 |
# File 'lib/diogenes/targets/cursor.rb', line 10 def build(sources:) skill_files = write_skill_files(sources.skills, skills_dir: ".agents/skills") [write(OUTPUT_PATH, render(sources))] + skill_files end |
#frontmatter ⇒ String
: () -> String
28 29 30 31 32 33 34 35 |
# File 'lib/diogenes/targets/cursor.rb', line 28 def frontmatter <<~YAML.strip --- description: Diogenes AI feature decision framework alwaysApply: true --- YAML end |
#render(sources) ⇒ String
: (untyped) -> String
18 19 20 21 22 23 24 25 |
# File 'lib/diogenes/targets/cursor.rb', line 18 def render(sources) parts = [] parts << frontmatter parts << "<!-- #{("cursor")} -->" parts << rules_block(sources.rules) unless sources.rules.empty? parts << skills_block(sources.skills) unless sources.skills.empty? parts.join("\n\n") end |
#rules_block(rules) ⇒ String
: (Array) -> String
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/diogenes/targets/cursor.rb', line 38 def rules_block(rules) lines = ["## Rules", ""] rules.each do |rule| lines << "### #{rule.name}" lines << "" lines << rule.content lines << "" end lines.join("\n").strip end |
#skills_block(skills) ⇒ String
: (Array) -> String
50 51 52 53 54 55 56 |
# File 'lib/diogenes/targets/cursor.rb', line 50 def skills_block(skills) lines = ["## Skills", ""] skills.each do |skill| lines << "- **#{skill.command}** — #{skill.description}" end lines.join("\n").strip end |