Текущий код работает до тех пор, пока нет удаленной ошибки:
def get_name_from_remote_url
cstr = "http://someurl.com"
getresult = open(cstr, "UserAgent" => "Ruby-OpenURI").read
doc = Nokogiri::XML(getresult)
my_data = doc.xpath("/session/name").text
# => 'Fred' or 'Sam' etc
return my_data
end
Но что, если удаленный URL-адрес истечет или ничего не вернет? Как я могу обнаружить это и вернуть nil, например?
И дает ли Open-URI способ определить, как долго ждать, прежде чем сдаться? Этот метод вызывается, когда пользователь ожидает ответа, так как же нам установить максимальное время вывода, прежде чем мы сдадимся и скажем пользователю: «Извините, удаленный сервер, к которому мы пытались получить доступ, сейчас недоступен»?