class Capistrano::Harrow::UI::TTY
Public Class Methods
new(params={input: $stdin, output: $stdout, timeout: 30})
click to toggle source
# File lib/capistrano/harrow/ui/tty.rb, line 5 def initialize(params={input: $stdin, output: $stdout, timeout: 30}) @in = params.fetch(:input, $stdin) @out = params.fetch(:output, $stdout) @timeout = params.fetch(:timeout, 60) end
Public Instance Methods
prompt(prompt_str, answers=['yes', 'no'])
click to toggle source
# File lib/capistrano/harrow/ui/tty.rb, line 24 def prompt(prompt_str, answers=['yes', 'no']) answers = Array(answers) @out.write prompt_str default_answer = answers.first hints = answers_hint(answers) unless hints.empty? @out.write " " @out.write hints end @out.write ": " unless IO.select([@in], [], [], @timeout) raise TimeoutError.new else answer = @in.gets.chop end return default_answer if answer.empty? answer end
prompt_password(prompt_str)
click to toggle source
# File lib/capistrano/harrow/ui/tty.rb, line 15 def prompt_password(prompt_str) %x`stty -echo 2>/dev/null` password = prompt(prompt_str, []) show "\n" password ensure %x`stty echo 2>/dev/null` end
show(text)
click to toggle source
# File lib/capistrano/harrow/ui/tty.rb, line 11 def show(text) @out.puts text end
Private Instance Methods
answers_hint(answers)
click to toggle source
# File lib/capistrano/harrow/ui/tty.rb, line 51 def answers_hint(answers) return '' if Array(answers).length == 0 items = answers.map(&:to_s).map(&:strip) items[0] = items.first[0].upcase + items.first[1..-1] "(#{items.join("/")})" end