26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/tent-client/discovery.rb', line 26
def discover(options = {})
discover_res, meta_post_urls = perform_head_discovery || perform_get_discovery
if meta_post_urls.empty?
return options[:return_response] ? last_response : nil
end
meta_post_urls.uniq.each do |url|
url = URI.join(discover_res.env[:url].to_s, url).to_s
begin
res = http.get(url) do |request|
request.['Accept'] = POST_CONTENT_TYPE % "https://tent.io/types/meta/v0#"
end
rescue Faraday::Error::TimeoutError, Faraday::Error::ConnectionFailed
res = Faraday::Response.new({})
end
if options[:return_response]
return res
elsif res.success? && (Hash === res.body)
return res.body['post']
end
end
nil
end
|