class Capistrano::Configuration::Question

Attributes

default[R]
key[R]
options[R]

Public Class Methods

new(key, default, options={}) click to toggle source
# File lib/capistrano/configuration/question.rb, line 4
def initialize(key, default, options={})
  @key = key
  @default = default
  @options = options
end

Public Instance Methods

call() click to toggle source
# File lib/capistrano/configuration/question.rb, line 10
def call
  ask_question
  value_or_default
end

Private Instance Methods

ask_question() click to toggle source
# File lib/capistrano/configuration/question.rb, line 19
def ask_question
  $stdout.print question
end
echo?() click to toggle source
# File lib/capistrano/configuration/question.rb, line 52
def echo?
  (options || {}).fetch(:echo, true)
end
gets() click to toggle source
# File lib/capistrano/configuration/question.rb, line 37
def gets
  if echo?
    $stdin.gets
  else
    $stdin.noecho(&:gets).tap { $stdout.print "\n" }
  end
rescue Errno::EIO
  # when stdio gets closed
  return
end
question() click to toggle source
# File lib/capistrano/configuration/question.rb, line 48
def question
  I18n.t(:question, key: key, default_value: default, scope: :capistrano)
end
response() click to toggle source
# File lib/capistrano/configuration/question.rb, line 31
def response
  return @response if defined? @response

  @response = (gets || "").chomp
end
value_or_default() click to toggle source
# File lib/capistrano/configuration/question.rb, line 23
def value_or_default
  if response.empty?
    default
  else
    response
  end
end