Sha256: 57797dede0c65b78e38ea5f7ef2eac29c2a9c0352128f9364c9e95eff930af73

Contents?: true

Size: 993 Bytes

Versions: 32

Compression:

Stored size: 993 Bytes

Contents

module Eco
  module API
    module Common
      module Session
        module Helpers
          module PromptUser
            # Prompts user for input with option for default on timeout.
            def prompt_user(question, default:, explanation: "", timeout: nil)
              require 'timeout'
              response = \
                if config.run_mode_remote?
                  default
                else
                  puts explanation
                  print "#{question} "
                  if timeout
                    begin
                      Timeout::timeout(timeout) { STDIN.gets.chop }
                    rescue Timeout::Error
                      default
                    end
                  else
                    STDIN.gets.chop
                  end
                end
              return response unless block_given?
              yield(response)
            end
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
eco-helpers-2.6.1 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.6.0 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.10 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.9 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.8 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.7 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.6 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.5 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.4 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.3 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.2 lib/eco/api/common/session/helpers/prompt_user.rb
eco-helpers-2.5.1 lib/eco/api/common/session/helpers/prompt_user.rb