class InstanceId::Request
Public Class Methods
new(*args, **options) { |connector| ... }
click to toggle source
# File lib/instance_id/request.rb, line 3 def initialize(*args, **options) yield(connector) if block_given? end
Public Instance Methods
endpoint()
click to toggle source
# File lib/instance_id/request.rb, line 14 def endpoint raise NotImplementedError, "concrete classes should implement #{__method__}." end
invoke() { |request| ... }
click to toggle source
# File lib/instance_id/request.rb, line 7 def invoke response = connector.send(method, endpoint) do |request| yield(request) if block_given? end parse response end
method()
click to toggle source
# File lib/instance_id/request.rb, line 18 def method raise NotImplementedError, "concrete classes should implement #{__method__}, returning one of #{%i(get post put patch delete)}." end
response_class()
click to toggle source
# File lib/instance_id/request.rb, line 22 def response_class raise NotImplementedError, "concrete classes should implement #{__method__}, returning concrete class of InstanceId::Response" end
Private Instance Methods
connector()
click to toggle source
# File lib/instance_id/request.rb, line 32 def connector @connector ||= Faraday.new(url: InstanceId.configure.base_url, headers: InstanceId.configure.headers) do |faraday| faraday.request :url_encoded # form-encode POST params faraday.adapter Faraday.default_adapter # make requests with Net::HTTP faraday.response :logger # log requests to STDOUT faraday.use :instrumentation end end
parse(response)
click to toggle source
# File lib/instance_id/request.rb, line 28 def parse(response) response_class.new(status: response.status, body: response.body, headers: response.headers) end