Method: XRD::ResourceDescriptor.fetch_and_parse

Defined in:
lib/xrd/resource_descriptor.rb

.fetch_and_parse(uri, adapter = HTTPAdapter::NetHTTPRequestAdapter, connection = nil) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/xrd/resource_descriptor.rb', line 27

def self.fetch_and_parse(
    uri, adapter=HTTPAdapter::NetHTTPRequestAdapter, connection=nil)
  resource_descriptor = XRD::ResourceDescriptor.new
  resource_descriptor.base_uri = uri
  request = [
    'GET', resource_descriptor.base_uri.to_str,
    [['Accept', 'application/xrd+xml,application/xml;q=0.9,*/*;q=0.9']],
    ['']
  ]
  response = HTTPAdapter.transmit(request, adapter, connection)
  status, headers, body = response
  xrd_content = ""
  body.each do |chunk|
    xrd_content += chunk
  end
  return self.parse(xrd_content)
end