Module: Msip::InternetHelper

Defined in:
app/helpers/msip/internet_helper.rb

Class Method Summary collapse

Class Method Details

.obtener(uri, prob, limite = 10) ⇒ Object

Obtiene datos de una URL con mediante HTTP y método GET haciendo redirecciones (limitadas) de requerirse ruby-doc.org/stdlib-2.7.0/libdoc/net/http/rdoc/Net/HTTP.html

Parameters:

  • uri

    Del cual traer datos

  • prob

    Colchón para problemas (debería llegar vacío y si hay problemas lo llena)

  • limite (defaults to: 10)

    Máximo de redirecciones

Returns:

  • nil si hay error o los datos obtenidos



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/helpers/msip/internet_helper.rb', line 13

def obtener(uri, prob, limite = 10)
  if limite == 0
    prob = "demasidas redirecciones HTTP"
    return nil
  end
  resp = Net::HTTP.get(URI(uri))
  case resp
  when Net::HTTPSuccess then
    resp
  when Net::HTTPRedirection then
    localizacion = resp["localizacion"]
    warn("redirected to #{localizacion}")
    traer(localizacion, prob, limite - 1)
  else
    if resp.respond_to?(:value)
      resp.value
    else
      resp
    end
  end
end