Skip to content

Instantly share code, notes, and snippets.

@RobertoBarros
Created April 29, 2024 17:48
Show Gist options
  • Save RobertoBarros/8241d0bc22730b16ecf8f1f4b5999c99 to your computer and use it in GitHub Desktop.
Save RobertoBarros/8241d0bc22730b16ecf8f1f4b5999c99 to your computer and use it in GitHub Desktop.
batch_1680_livecode_instacart_part2
# Mensagem de boas vindas
puts "-" * 30
puts "Bem Vindos ao Mercado Tabajara"
puts "-" * 30
products= {
"kiwi" => 1.25,
"banana" => 0.50,
"mango" => 4,
"apple" => 3
}
# Mostrar todos os produtos com o preço
products.each do |product, price|
puts "Valor do #{product} é: #{price}"
end
puts "-" * 30
cart = []
# LOOP
loop do
# Perguntar qual produto quer adicionar
puts "Qual produto deseja adicionar: "
name = gets.chomp.downcase
# Se colocar `quit` sai do loop
break if name == "quit"
# Perguntar a quantidade
puts "Quantos items?"
quantity = gets.chomp.to_i
# Verificar se o produto existe e adicionar ao carrinho o produto e a quantidade
if products.key?(name)
cart << { name: name, quantity: quantity }
else
puts "Produto inexistente"
end
# FIM DO LOOP
end
# cart é um array de hashs do tipo:
# [{:name=>"kiwi", :quantity=>2}, {:name=>"mango", :quantity=>5}]
puts "-" * 30
# Calcula o subtotal por produto e total da compra
total = 0
cart.each do |product|
# product é um hash como {:name=>"kiwi", :quantity=>2}
name = product[:name]
quantity = product[:quantity]
price = products[name]
subtotal = quantity * price
# kiwi: 2 X 1.25€ = 2.5€
puts "#{name}: #{quantity} x #{price} = #{subtotal}"
total += subtotal
end
# Mostra o valor
puts "-" * 30
puts "Total = #{total}"
puts "-" * 30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment