Class: Aidp::Init::DevcontainerGenerator
- Inherits:
-
Object
- Object
- Aidp::Init::DevcontainerGenerator
- Includes:
- MessageDisplay
- Defined in:
- lib/aidp/init/devcontainer_generator.rb
Overview
Generates .devcontainer configuration for projects Provides sandboxed development environment with network security
Design Philosophy:
-
Use project analysis data (already collected by ProjectAnalyzer)
-
Avoid hardcoded framework/tool assumptions
-
Prefer templates over code generation
-
Let the data drive decisions, not hardcoded logic
Constant Summary
Constants included from MessageDisplay
Instance Method Summary collapse
-
#exists? ⇒ Boolean
Check if devcontainer already exists.
-
#generate(analysis:, preferences: {}) ⇒ Array<String>
Generate devcontainer configuration based on project analysis.
-
#initialize(project_dir = Dir.pwd) ⇒ DevcontainerGenerator
constructor
A new instance of DevcontainerGenerator.
Methods included from MessageDisplay
#display_message, #in_test_environment?, included, #message_display_prompt, #suppress_display_message?
Constructor Details
#initialize(project_dir = Dir.pwd) ⇒ DevcontainerGenerator
Returns a new instance of DevcontainerGenerator.
20 21 22 23 |
# File 'lib/aidp/init/devcontainer_generator.rb', line 20 def initialize(project_dir = Dir.pwd) @project_dir = project_dir @devcontainer_dir = File.join(@project_dir, ".devcontainer") end |
Instance Method Details
#exists? ⇒ Boolean
Check if devcontainer already exists
45 46 47 |
# File 'lib/aidp/init/devcontainer_generator.rb', line 45 def exists? Dir.exist?(@devcontainer_dir) end |
#generate(analysis:, preferences: {}) ⇒ Array<String>
Generate devcontainer configuration based on project analysis
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/aidp/init/devcontainer_generator.rb', line 30 def generate(analysis:, preferences: {}) ensure_directory_exists files = [] files << generate_dockerfile(analysis, preferences) files << generate_devcontainer_json(analysis, preferences) files << generate_firewall_script(analysis, preferences) files << generate_readme(analysis, preferences) files.compact end |