Class: TerraformDevKit::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/TerraformDevKit/request.rb

Instance Method Summary collapse

Constructor Details

#initialize(url, query_strings: [], headers: {}) ⇒ Request

Returns a new instance of Request.



6
7
8
9
10
# File 'lib/TerraformDevKit/request.rb', line 6

def initialize(url, query_strings: [], headers: {})
  @url = url
  @query_strings = query_strings
  @headers = headers
end

Instance Method Details

#execute(raise_on_codes: []) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/TerraformDevKit/request.rb', line 12

def execute(raise_on_codes: [])
  url = URI.parse(@url)
  url.query = URI.encode_www_form(@query_strings) unless @query_strings.empty?
  puts "Fetching #{url}"
  options = {
    redirect: false,
    ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
  }
  options.merge!(@headers)
  URI.open(url, options)
rescue OpenURI::HTTPError => error
  response = error.io
  raise if raise_on_codes.include?(response.status[0])
  response
end