Skip to content

Instantly share code, notes, and snippets.

@RobertoBarros
Created January 27, 2025 18:44
Show Gist options
  • Save RobertoBarros/fa95e8180edbe273cb1a25e0a2fccde8 to your computer and use it in GitHub Desktop.
Save RobertoBarros/fa95e8180edbe273cb1a25e0a2fccde8 to your computer and use it in GitHub Desktop.
reboot_batch_1925_instacart_part_2
# Mensagem de boas vindas
puts '-' * 50
puts "Bem-vindo ao nosso mercado"
puts '-' * 50
# Exibir produtos com o respectivo preço
products = { "kiwi" => 1.25,
"banana" => 0.5,
"mango" => 4,
"asparagus" => 9
}
products.each do |product, price|
puts "#{product} - R$ #{price}"
end
puts '-' * 50
cart = []
# cart é um array de hash onde:
# cart = [{product: "mango", quantity: 2}, {product: "banana", quantity: 5}, ...]
# LOOP
loop do
# Perguntar qual produto quer adicionar ao carrinho
puts "Qual produto você deseja adicionar ao carrinho? Ou (quit) para sair"
choice = gets.chomp
# Se o produto for "quit" sai do loop
break if choice == "quit"
# Somente adicionar ao carrinho se for um nome de produto válido
if products.key?(choice)
# Perguntar a quantidade
puts "Qual a quantidade?"
quantity = gets.chomp.to_i
cart << {product: choice, quantity: quantity}
else
puts "O produto não está em estoque"
end
# FIM DO LOOP
end
bill = 0
# Calcular o total dos preços dos produtos no carrinho
puts '-' * 50
cart.each do |item|
# item é um hash no formato: {:product=>"kiwi", :quantity=>10}
product = item[:product] # string com o nome do produto
quantity = item[:quantity] # integer com a quantidade do produto
price = products[product] # preço do hash de products pelo nome do produto
subtotal = price * quantity
puts "#{product} : #{quantity} X #{price} = #{subtotal}"
bill += subtotal
end
# Mostrar o valor total
puts "O valor da sua conta foi #{bill} "
puts '-' * 50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment