Module: Capitate::Plugins::Prompt
- Defined in:
- lib/capitate/plugins/prompt.rb
Instance Method Summary collapse
-
#ask(label, options = {}, &block) ⇒ Object
Prompt.
-
#password(label, options = {}) ⇒ Object
Prompt for password.
-
#preview_variables(variables, header = "Verify your settings", prompt = "Choose: ") ⇒ Object
Preview variables, and re-set them if asked to.
Instance Method Details
#ask(label, options = {}, &block) ⇒ Object
Prompt.
Options
:label
11 12 13 |
# File 'lib/capitate/plugins/prompt.rb', line 11 def ask(label, = {}, &block) Capistrano::CLI.ui.ask(label, &block) end |
#password(label, options = {}) ⇒ Object
Prompt for password.
Options (options)
:label
Password options
:verify
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/capitate/plugins/prompt.rb', line 27 def password(label, = {}) verify = [:verify] lazy = [:lazy].nil? ? true : [:lazy] check_hash = [:check_hash] max_attempts = [:max_attempts] || 3 # Lazy password_prompt = Proc.new { attempts = 0 password = nil success = true loop do password = Capistrano::CLI.password_prompt(label) attempts += 1 if verify password_verify = Capistrano::CLI.password_prompt("[VERIFY] #{label}") if password != password_verify logger.important "Passwords do not match" success = false end end if check_hash if MD5.md5(password).hexdigest != check_hash logger.important "Invalid password, try again." success = false end end break if success break if attempts >= max_attempts # Reset success success = true end raise "Invalid password, too many tries" unless success password } return password_prompt if lazy password_prompt.call end |
#preview_variables(variables, header = "Verify your settings", prompt = "Choose: ") ⇒ Object
Preview variables, and re-set them if asked to. Uses highline menus. Is not very intelligent.
Options
:variables
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/capitate/plugins/prompt.rb', line 84 def preview_variables(variables, header = "Verify your settings", prompt = "Choose: ") hl = Capistrano::CLI.ui confirmed = false while not confirmed do hl.choose do || .header = header .prompt = prompt .choice("<Continue>") do confirmed = true end variables.each do |variable| .choice("#{variable}: #{fetch(variable)}") do new_setting = ask("Set #{variable}: ") { |q| q.default = fetch(variable) } set variable, new_setting end end end end end |