Class: RosettAi::Thor::Tasks::BehaviourManage
- Inherits:
-
Thor
- Object
- Thor
- RosettAi::Thor::Tasks::BehaviourManage
- Defined in:
- lib/rosett_ai/thor/tasks/behaviour.rb
Overview
Subcommand for managing behaviour files Must be defined before Behaviour class that references it
Instance Method Summary collapse
Instance Method Details
#add(name) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/rosett_ai/thor/tasks/behaviour.rb', line 40 def add(name) name = RosettAi::TextSanitizer.normalize_nfc(name) return if behaviour_exists?(name) description = [:description] || RosettAi::Ui::TtyHelper.ask('Description:', option_hint: 'description') temp_file, temp_dir = create_temp_behaviour(name, description, [:author]) open_in_editor(temp_file) return cleanup_temp(temp_dir) unless valid_behaviour?(temp_file) save_behaviour(temp_file, name, temp_dir) end |
#delete(name) ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/rosett_ai/thor/tasks/behaviour.rb', line 94 def delete(name) name = RosettAi::TextSanitizer.normalize_nfc(name) file_path = find_behaviour_file(name) raise ::Thor::Error, Rainbow(t('not_found', name: name)).red unless file_path display_usages(name) return unless deletion_confirmed?(name) File.delete(file_path) cleanup_compiled_rules(name) puts Rainbow(t('deleted', name: name)).green end |
#modify(name) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/rosett_ai/thor/tasks/behaviour.rb', line 63 def modify(name) name = RosettAi::TextSanitizer.normalize_nfc(name) file_path = find_behaviour_file(name) raise ::Thor::Error, Rainbow(t('not_found', name: name)).red unless file_path temp_file, temp_dir = create_temp_copy(file_path) (temp_file) open_in_editor(temp_file) return cleanup_temp(temp_dir) unless valid_behaviour?(temp_file) FileUtils.cp(temp_file, file_path) cleanup_temp(temp_dir) puts Rainbow(t('updated', name: name)).green end |