class Luban::Deployment::Configuration::Question

Attributes

default[R]
prompt[R]

Public Class Methods

new(default:, prompt: nil, echo: true) click to toggle source
# File lib/luban/deployment/configuration/question.rb, line 7
def initialize(default:, prompt: nil, echo: true)
  @default = default
  @echo = echo
  @prompt = "#{prompt.to_s}: " unless prompt.nil?
end

Public Instance Methods

call() click to toggle source
# File lib/luban/deployment/configuration/question.rb, line 15
def call
  ask_question
  get_response
end
echo?() click to toggle source
# File lib/luban/deployment/configuration/question.rb, line 13
def echo?; @echo; end

Protected Instance Methods

ask_question() click to toggle source
# File lib/luban/deployment/configuration/question.rb, line 22
def ask_question
  $stdout.print prompt
end
get_response() click to toggle source
# File lib/luban/deployment/configuration/question.rb, line 26
def get_response
  response = if echo?
               $stdin.gets.chomp
             else
               require 'io/console'
               $stdin.noecho(&:gets).chomp.tap{ $stdout.print "\n" }
             end
  response.empty? ? default : response
end