class Stairs::Util::CLI::Collector
Attributes
options[R]
prompt[R]
validator[R]
Public Class Methods
new(prompt, options = {}, &block)
click to toggle source
# File lib/stairs/util/cli.rb, line 17 def initialize(prompt, options = {}, &block) @prompt = prompt @options = options.reverse_merge required: true @validator = block end
Public Instance Methods
run()
click to toggle source
# File lib/stairs/util/cli.rb, line 23 def run times = 0 value = nil until valid?(value, times) value = CLI.get(prompt.blue) times += 1 end value end
Private Instance Methods
valid?(value, times)
click to toggle source
# File lib/stairs/util/cli.rb, line 37 def valid?(value, times) if validator validator.call(value, times) else !!value || (!options[:required] && times > 0) end end