Class: Vagrant::Action::Builtin::Confirm

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant/action/builtin/confirm.rb

Overview

This class asks the user to confirm some sort of question with a ā€œY/Nā€ question. The only parameter is the text to ask the user. The result is placed in ā€˜env` so that it can be used with the Call class.

Instance Method Summary collapse

Constructor Details

#initialize(app, env, message, force_key = nil) ⇒ Confirm

For documentation, read the description of the Vagrant::Action::Builtin::Confirm class.

Parameters:

  • message (String)

    The message to ask the user.

  • force_key (Symbol) (defaults to: nil)

    The key that if present and true in the environment hash will skip the confirmation question.



14
15
16
17
18
# File 'lib/vagrant/action/builtin/confirm.rb', line 14

def initialize(app, env, message, force_key=nil)
  @app      = app
  @message  = message
  @force_key = force_key
end

Instance Method Details

#call(env) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/vagrant/action/builtin/confirm.rb', line 20

def call(env)
  choice = nil

  # If we have a force key set and we're forcing, then set
  # the result to "Y"
  choice = "Y" if @force_key && env[@force_key]

  # If we haven't chosen yes, then ask the user via TTY
  choice = env[:ui].ask(@message) if !choice

  # The result is only true if the user said "Y"
  env[:result] = choice && choice.upcase == "Y"

  @app.call(env)
end