Module: Awsmeta::Request

Defined in:
lib/awsmeta/request.rb

Overview

contains methods used to request and parse metadata

Class Method Summary collapse

Class Method Details

.get(url) ⇒ Object



8
9
10
11
12
13
14
# File 'lib/awsmeta/request.rb', line 8

def get(url)
  uri = URI.parse(url)
  req = Net::HTTP.new(uri.host, uri.port)
  req.read_timeout = Awsmeta::Config.read_timeout
  req.open_timeout = Awsmeta::Config.open_timeout
  req.start { |http| http.get(uri.to_s) }
end

.request(url) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/awsmeta/request.rb', line 22

def request(url)
  response = get(url)
  return { error: response.message, code: response.code } if
    response.code != '200'

  result = safe_json_parse(response.body)
  { resource: result }
end

.safe_json_parse(string) ⇒ Object



16
17
18
19
20
# File 'lib/awsmeta/request.rb', line 16

def safe_json_parse(string)
  JSON.parse(string)
rescue JSON::ParserError
  string
end