Class: RosettAi::Thor::Tasks::Design
- Inherits:
-
Thor
- Object
- Thor
- RosettAi::Thor::Tasks::Design
- Defined in:
- lib/rosett_ai/thor/tasks/design.rb
Overview
Thor tasks for design document management
Instance Method Summary collapse
Instance Method Details
#list ⇒ Object
90 91 92 93 94 95 96 97 98 |
# File 'lib/rosett_ai/thor/tasks/design.rb', line 90 def list files = design_files if files.empty? puts Rainbow(t('no_documents_found')).yellow return end print_design_list(files) end |
#show(name) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/rosett_ai/thor/tasks/design.rb', line 56 def show(name) name = RosettAi::TextSanitizer.normalize_nfc(name) file_path = find_design_file(name) raise ::Thor::Error, Rainbow(t('not_found', name: name)).red unless file_path data = RosettAi::YamlLoader.load_file(file_path) raise ::Thor::Error, Rainbow(t('empty_file', path: file_path)).red if data.nil? sanitized = RosettAi::TextSanitizer.sanitize_for_display(data) print_design_header(sanitized) print_section(t('intent'), sanitized['intent']) print_numbered_section(t('constraints'), sanitized['constraints']) print_numbered_section(t('acceptance_criteria'), sanitized['acceptance_criteria']) print_dependencies(sanitized['depends_on']) return unless [:full] print_examples(sanitized['examples']) print_numbered_section(t('anti_patterns'), sanitized['anti_patterns']) print_preferences(sanitized['preferences']) end |
#validate(name = nil) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/rosett_ai/thor/tasks/design.rb', line 29 def validate(name = nil) name = RosettAi::TextSanitizer.normalize_nfc(name) if name files = files_to_validate(name) return puts Rainbow(t('no_documents')).yellow if files.empty? all_valid = validate_files(files) raise ::Thor::Error, t('validation_failed') unless all_valid end |