Skip to content

Instantly share code, notes, and snippets.

@oddlyfunctional
Created July 10, 2017 14:23
Show Gist options
  • Save oddlyfunctional/338f4ed4f0c5a0a2f5b24ee97d3bcb2d to your computer and use it in GitHub Desktop.
Save oddlyfunctional/338f4ed4f0c5a0a2f5b24ee97d3bcb2d to your computer and use it in GitHub Desktop.
Christmas list
require 'open-uri'
require 'nokogiri'
def list_gifts(gifts_list)
gifts_list.each_with_index do |gift, index|
name = gift["name"]
bought = gift["bought"]
if bought
status = "[x]"
else
status = "[ ]"
end
puts "#{index + 1} - #{status} #{name}"
end
end
puts "Bem vindo(a) à sua lista de presentes!"
option = "qualquer coisa"
gifts = [
{ "name" => "tênis", "bought" => false },
{ "name" => "hand spinner", "bought" => false },
{ "name" => "meia velha", "bought" => false }
]
until option == "sair"
puts "O que você quer fazer? (listar, adicionar, deletar, marcar, sair)"
option = gets.chomp
case option
when "listar"
puts "Esta é sua lista:"
list_gifts(gifts)
when "adicionar"
puts "O que deseja adicionar?"
gifts << { "name" => gets.chomp, "bought" => false }
when "deletar"
puts "Qual item você deseja deletar?"
gifts.delete_at(gets.chomp.to_i - 1)
list_gifts(gifts)
when "marcar"
puts "Qual item você deseja marcar?"
index = gets.chomp.to_i - 1
gift = gifts[index]
gift["bought"] = !gift["bought"]
list_gifts(gifts)
when "ideia"
puts "Que tipo de presente você quer procurar?"
idea = gets.chomp
url = "https://www.etsy.com/search?q=#{idea}"
html = Nokogiri::HTML(open(url).read)
options = html.search(".n-listing-card__info p").first(5)
options.each_with_index do |product, index|
puts "#{index + 1} - #{product.text.strip}"
end
puts "Qual dessas ideias você quer adicionar à lista?"
option = gets.chomp.to_i - 1
gifts << { "name" => options[option].text.strip, "bought" => false }
list_gifts(gifts)
when "sair"
puts "Até logo!"
else
puts "Opção inválida!"
end
end
# O que você quer fazer? (listar, adicionar, deletar, sair)
# listar
# 1 - [ ] tênis
# 2 - [ ] hand spinner
# 3 - [ ] meia
#
# O que você quer fazer? (listar, adicionar, deletar, marcar, sair)
# deletar
#
# Qual item você quer deletar?
# 1
#
# O que você quer fazer? (listar, adicionar, deletar, marcar, sair)
# listar
# 1 - [ ] hand spinner
# 2 - [ ] meia
#
#
# O que você quer fazer? (listar, adicionar, deletar, marcar, sair)
# marcar
#
# Qual item você quer marcar?
# 2
#
# O que você quer fazer? (listar, adicionar, deletar, marcar, sair)
# listar
# 1 - [ ] hand spinner
# 2 - [x] meia
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment