Skip to content

Instantly share code, notes, and snippets.

@RobertoBarros
Created November 6, 2025 23:48
Show Gist options
  • Select an option

  • Save RobertoBarros/cef0c0223b8bc4fd09644c858bde065b to your computer and use it in GitHub Desktop.

Select an option

Save RobertoBarros/cef0c0223b8bc4fd09644c858bde065b to your computer and use it in GitHub Desktop.
batch_2175_reboot_instacart_part_2
# Mensagem de boas vindas
puts "-" * 30
puts "Bem vindos a Pé de Pano store"
puts "-" * 30
# Definir os produtos (nome, preço) disponíveis
products = {
"kiwi" => 1.25,
"banana" => 0.5,
"manga" => 4.0,
"aspargo" => 9.0
}
# Mostrar os produtos com o respectivo preço
puts "Hoje nós temos os seguintes produtos disponíveis:"
products.each do |item, price|
puts "#{item}: #{price}"
end
puts "-" * 30
cart = []
# LOOP
loop do
# Perguntar qual o produto ou `quit` para encerrar
puts "Qual produto você gostaria de comprar hoje? ou 'quit' para sair"
answer = gets.chomp.downcase.strip
# Se o usuário digitou `quit` sai do loop
break if answer == "quit"
# Armazenar o produto no carrinho do usuário se ele existir
if products.key?(answer)
# Perguntar a quantidade de produtos
puts "Qual quantidade de #{answer} você deseja?"
quantity = gets.chomp.to_i
cart << {
item: answer,
quantity: quantity
}
else
puts "Desculpe, produto #{answer} não disponível"
end
#FIM LOOP
end
# cart é um array de hashes do tipo:
# [{item: "banana", quantity: 20}, {item: "manga", quantity: 10}]
# Calcular o subtotal e total dos produtos no carrinho
total = 0
puts "-" * 30
cart.each do |info|
item = info[:item]
quantity = info[:quantity]
price = products[item]
subtotal = quantity * price
# Mostrar o subtotal por item
puts "#{item}: #{quantity} X #{price} = #{subtotal}"
total += subtotal
end
# Mostrar o total dos produtos no carrinho
puts "-" * 30
puts "O valor total de sua compra foi: #{total}"
puts "-" * 30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment