📚 Curso de Ruby - Projeto Final (Aula 10)
Por Leonardo | OneBitCode
📝 Leitura e Escrita de Arquivos
Na aula, Leonardo demonstra como ler uma lista de compras de um arquivo de texto (shopping-list.txt) usando a classe File do Ruby, e como iterar sobre cada linha.
File.open("shopping-list.txt", "r") do |file|
file.each_line do |line|
puts line
end
end
Em seguida, é mostrado como escrever em um arquivo, adicionando novos itens a uma lista existente sem sobrescrever o conteúdo anterior.
🌐 Chamadas Web (HTTP e HTTPS)
O instrutor explica a importância da comunicação entre softwares pela internet. Ele demonstra requisições GET para baixar o conteúdo HTML de um site (exemplo.com) e salvá-lo localmente.
Depois, aborda chamadas HTTPS, mostrando como usar a biblioteca Net::HTTP para fazer uma requisição GET a uma API que retorna dados em JSON.
require 'net/http'
require 'json'
url = URI('https://api.exemplo.com/dados')
response = Net::HTTP.get(url)
data = JSON.parse(response)
puts data
Por fim, explica as requisições POST para enviar informações a um servidor web, como nome e profissão para uma API de teste.
🕷️ Web Scraping
Leonardo introduz o web scraping como a técnica de extrair informações importantes de páginas HTML. Ele mostra como usar a gem Nokogiri para analisar o HTML de um site (onebitcode.com) e extrair elementos específicos, como o título principal (h1) ou títulos de posts (h3 com a).
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(URI.open('https://onebitcode.com'))
titulo = doc.at('h1').text
puts "Título principal: #{titulo}"
A demonstração inclui a extração de um único título e, posteriormente, de todos os títulos de posts de uma página.
🎯 Projeto Final
O projeto de conclusão do curso é criar um sistema de tradução. O usuário deve:
- Digitar uma frase
- Especificar o idioma original
- Especificar o idioma de destino
- Receber a tradução
Para isso, os alunos devem usar uma API externa (detalhes da URL e token seriam fornecidos na seção de texto).
Critérios do Projeto Final:
- A lógica de tradução deve estar encapsulada em uma classe
- O resultado de cada tradução, junto com a frase original e de destino, deve ser salvo em um arquivo com nome baseado na data e hora da solicitação
👋 Considerações Finais
Leonardo encoraja os alunos a compartilhar seus códigos para revisão e agradece a participação, pedindo para que:
- Se inscrevam nas redes sociais
- Avaliem o curso
- Recomendem para outros interessados
0 Comentários