Class: AIA::VariableInputCollector
- Inherits:
-
Object
- Object
- AIA::VariableInputCollector
- Defined in:
- lib/aia/variable_input_collector.rb
Instance Method Summary collapse
-
#initialize ⇒ VariableInputCollector
constructor
A new instance of VariableInputCollector.
- #request_variable_value(variable_name:, default_value: nil) ⇒ Object
Constructor Details
#initialize ⇒ VariableInputCollector
Returns a new instance of VariableInputCollector.
8 9 10 |
# File 'lib/aia/variable_input_collector.rb', line 8 def initialize # No prompt dependency — just handles user input for parameter collection end |
Instance Method Details
#request_variable_value(variable_name:, default_value: nil) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/aia/variable_input_collector.rb', line 12 def request_variable_value(variable_name:, default_value: nil) Reline::HISTORY.clear question = if default_value.nil? "Value for #{variable_name} (required): " else "Value for #{variable_name} (#{default_value}): " end Reline.output = $stdout original_prompt_proc = Reline.line_editor.prompt_proc begin input = Reline.readline(question, true) if input.nil? # Ctrl+D return default_value if default_value raise AIA::Error, "Parameter '#{variable_name}' is required." end value = input.strip if value.empty? return default_value if default_value raise AIA::Error, "Parameter '#{variable_name}' is required." end value rescue Interrupt raise AIA::Error, "Variable input interrupted." ensure Reline.line_editor.prompt_proc = original_prompt_proc end end |