Class: Diogenes::Targets::ClaudeCode
- Defined in:
- lib/diogenes/targets/claude_code.rb,
sig/generated/diogenes/targets/claude_code.rbs
Constant Summary collapse
- OUTPUT_PATH =
: String
"CLAUDE.md"
Instance Method Summary collapse
-
#build(sources:) ⇒ Array[String]
: (sources: untyped) -> Array.
-
#header ⇒ String
: () -> String.
-
#hooks_section(hooks) ⇒ String
: (Array) -> String.
-
#render(sources) ⇒ String
: (untyped) -> String.
-
#rules_section(rules) ⇒ String
: (Array) -> String.
-
#skills_section(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/claude_code.rb', line 10 def build(sources:) skill_files = write_skill_files(sources.skills, skills_dir: ".claude/skills") [write(OUTPUT_PATH, render(sources))] + skill_files end |
#header ⇒ String
: () -> String
27 28 29 30 31 32 33 |
# File 'lib/diogenes/targets/claude_code.rb', line 27 def header <<~HEADER.strip # Agent Configuration > #{("claude-code")} HEADER end |
#hooks_section(hooks) ⇒ String
: (Array) -> String
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/diogenes/targets/claude_code.rb', line 62 def hooks_section(hooks) lines = ["## Hooks", ""] hooks.each do |hook| lines << "### #{hook.name}" lines << "" lines << "**Trigger:** #{hook.trigger}" lines << "" lines << hook.prompt lines << "" end lines.join("\n").strip end |
#render(sources) ⇒ String
: (untyped) -> String
18 19 20 21 22 23 24 |
# File 'lib/diogenes/targets/claude_code.rb', line 18 def render(sources) parts = [header] parts << skills_section(sources.skills) unless sources.skills.empty? parts << rules_section(sources.rules) unless sources.rules.empty? parts << hooks_section(sources.hooks) unless sources.hooks.empty? parts.join("\n\n") end |
#rules_section(rules) ⇒ String
: (Array) -> String
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/diogenes/targets/claude_code.rb', line 48 def rules_section(rules) lines = ["## Active Rules", ""] rules.each do |rule| lines << "### #{rule.name}" lines << "" lines << rule.content lines << "" lines << "---" lines << "" end lines.join("\n").strip end |
#skills_section(skills) ⇒ String
: (Array) -> String
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/diogenes/targets/claude_code.rb', line 36 def skills_section(skills) lines = ["## Available Skills", ""] skills.each do |skill| lines << "### #{skill.command}" lines << "" lines << skill.description lines << "" end lines.join("\n").strip end |