class Stairs::Step::Choice
Attributes
block[R]
choices[R]
question[R]
Public Class Methods
new(question, choices = %w(Y N), &block)
click to toggle source
TODO: shouldn't care about case?
# File lib/stairs/step.rb, line 126 def initialize(question, choices = %w(Y N), &block) @question = question @choices = choices @block = block end
Public Instance Methods
run()
click to toggle source
# File lib/stairs/step.rb, line 132 def run block.call processed_response if block processed_response end
Private Instance Methods
processed_response()
click to toggle source
# File lib/stairs/step.rb, line 145 def processed_response @processed_response ||= case response when 'Y' true when 'N' false else response end end
prompt()
click to toggle source
# File lib/stairs/step.rb, line 141 def prompt "#{question} (#{choices.join('/')}): " end
response()
click to toggle source
# File lib/stairs/step.rb, line 156 def response @reponse ||= Stairs::Util::CLI.collect prompt.blue do |value, _i| choices.include? value end end