Module: Roast::Tools::AskUser

Extended by:
AskUser
Included in:
AskUser
Defined in:
lib/roast/tools/ask_user.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

Add this method to be included in other classes



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/roast/tools/ask_user.rb', line 10

def included(base)
  base.class_eval do
    function(
      :ask_user,
      "Ask the user for input with a specific prompt. Returns the user's response.",
      prompt: { type: "string", description: "The prompt to show the user" },
    ) do |params|
      Roast::Tools::AskUser.call(params[:prompt])
    end
  end
end

Instance Method Details

#call(prompt) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/roast/tools/ask_user.rb', line 23

def call(prompt)
  Roast::Helpers::Logger.info("💬 Asking user: #{prompt}\n")

  response = ::CLI::UI::Prompt.ask(prompt)

  Roast::Helpers::Logger.info("User responded: #{response}\n")
  response
rescue StandardError => e
  "Error getting user input: #{e.message}".tap do |error_message|
    Roast::Helpers::Logger.error(error_message + "\n")
    Roast::Helpers::Logger.debug(e.backtrace.join("\n") + "\n") if ENV["DEBUG"]
  end
end