Class: SnippetCli::ReplacementWizard
- Inherits:
-
Object
- Object
- SnippetCli::ReplacementWizard
- Includes:
- ReplacementTextCollector, ReplacementValidator, WizardHelpers::PromptHelpers, WizardHelpers::ValidationLoop
- Defined in:
- lib/snippet_cli/replacement_wizard.rb
Overview
Handles all interactive replacement collection for the new-snippet wizard. Keeps Gum/UI calls out of NewWorkflow so orchestration and domain logic can be read and tested without UI concerns.
Constant Summary
Constants included from ReplacementTextCollector
SnippetCli::ReplacementTextCollector::EMPTY_REPLACE_WARNING
Instance Method Summary collapse
-
#collect(vars, global_var_names: []) ⇒ Object
Collects a replacement hash (type + value) with var validation.
-
#collect_advanced_options ⇒ Object
Collects advanced snippet options (label, comment, search_terms, word, propagate_case).
-
#collect_plain_replace ⇒ Object
Collects plain replacement text only (used for –bare mode).
Methods included from WizardHelpers::PromptHelpers
#collect_search_terms, #confirm!, #list_confirm!, #optional_prompt, #prompt!
Methods included from WizardHelpers::ValidationLoop
#prompt_non_empty, #prompt_until_valid
Instance Method Details
#collect(vars, global_var_names: []) ⇒ Object
Collects a replacement hash (type + value) with var validation. Returns e.g. { replace: ‘…’ } or { markdown: ‘…’ } or { image_path: ‘…’, vars: [] }.
22 23 24 |
# File 'lib/snippet_cli/replacement_wizard.rb', line 22 def collect(vars, global_var_names: []) collect_replacement(vars, global_var_names: global_var_names) end |
#collect_advanced_options ⇒ Object
Collects advanced snippet options (label, comment, search_terms, word, propagate_case). Returns a hash with all keys present (nil/false/[] for declined options).
28 29 30 31 32 |
# File 'lib/snippet_cli/replacement_wizard.rb', line 28 def return { label: nil, comment: nil, search_terms: [] } unless confirm!('Show advanced options?') end |
#collect_plain_replace ⇒ Object
Collects plain replacement text only (used for –bare mode).
35 36 37 |
# File 'lib/snippet_cli/replacement_wizard.rb', line 35 def collect_plain_replace collect_replace([]) end |