Class: Google::Resourcemanager::Network::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/google/resourcemanager/network/base.rb

Overview

A handler for authenticated network request

Direct Known Subclasses

Delete, Get, Post, Put

Instance Method Summary collapse

Constructor Details

#initialize(link, cred) ⇒ Base

Returns a new instance of Base.



36
37
38
39
# File 'lib/google/resourcemanager/network/base.rb', line 36

def initialize(link, cred)
  @link = link
  @cred = cred
end

Instance Method Details

#builderObject



41
42
43
# File 'lib/google/resourcemanager/network/base.rb', line 41

def builder
  Net::HTTP.const_get(self.class.name.split('::').last)
end

#sendObject



45
46
47
48
49
50
51
52
53
54
# File 'lib/google/resourcemanager/network/base.rb', line 45

def send
  request = @cred.authorize(builder.new(@link))
  request['User-Agent'] = generate_user_agent
  response = transport(request).request(request)
  unless ENV['GOOGLE_HTTP_VERBOSE'].nil?
    puts ["network(#{request}: [#{response.code}]",
          response.body.split("\n").map(&:strip).join(' ')].join(' ')
  end
  response
end

#transport(request) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
# File 'lib/google/resourcemanager/network/base.rb', line 56

def transport(request)
  uri = request.uri
  puts "network(#{request}: #{uri})" \
    unless ENV['GOOGLE_HTTP_VERBOSE'].nil?
  transport = Net::HTTP.new(uri.host, uri.port)
  transport.use_ssl = uri.is_a?(URI::HTTPS)
  transport.verify_mode = OpenSSL::SSL::VERIFY_PEER
  transport.set_debug_output $stderr \
    unless ENV['GOOGLE_HTTP_DEBUG'].nil?
  transport
end