Nesta aula iremos aprender um pouco mais sobre funções, iremos ver mais uma forma de utilizar a função para economizar códigos desnecessários.
def recursiva
puts "Danilo"
end
recursiva
A função acima gera um loop infinito pois não colocamos uma saída, então ela chama a si mesmo (recursividade) até o infinito, abaixo mostramos como implementar uma condição de saída para prevenir a execução infinita.
def recursiva(count)
puts "Danilo"
return if count == 10
recursiva(count + 1)
end
count = 0
recursiva(1)
Como de praxe copie o arquivo padrão das aulas anteriores para seguir conforme o padrão.
Estrutura base que usaremos.
require 'byebug'
# debugger
@i = 1
def captura_servico
#TODO: capturar dados do serviço: http://localhost:3000/usuarios.json
puts "implementar o dado para buscar da API #{@i}"
@i += 1
return if 1 > 3
captura_servico
end
captura_servico
A URL que usaremos do serviço é utilizada localmente, caso você deseje o mesmo resultado deve iniciar a API que foi desenvolvida no curso de node.js como é mostrado na aula
require 'byebug'
# debugger
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
debugger
x = ""
end
captura_servico
Dica: Procure sobre o JSON Server Link para o pacote no NPM, assim você consegue montar uma resposta falsa de API REST simulando o que o fizemos aqui, inclusive com paginação.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
end
end
6.times do |i|
captura_servico(i)
end
Implementação final com validação de paginas.
require 'byebug'
require 'active_suport/all'
require 'httparty'
def captura_servico(pagina=1)
uri = URI("http://localhost:3000/usuarios.json?pagina=#{pagina}")
request = Net::HTTP.get_response(uri)
if request.code == "200"
dados = JSON.parse(request.body)
dados.each do |dado|
puts"==========================================="
puts dado["id"]
puts dado["nome"]
puts dado["login"]
puts dado["senha"]
puts dado["email"]
puts"==========================================="
end
captura_servico(pagina + 1) if dados.size > 0
end
end
captura_servico
Nesta aula iremos aprender o como criar uma classe, uma instância e a ...
Nesta aula iremos aprender como criar propriedades em uma classe ruby,...
Nesta aula iremos aprender sobre herança, mais uma aula de orientação ...
Nesta aula iremos aprender as marcações public, private, protected e v...
Nesta aula iremos aprender como fazer polimorfismo no Ruby, também ire...
Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.