class OMU::Support::RestClient::Request
Constants
- HEADERS
- SUPPORTED_HTTP_OPTIONS
Attributes
headers[R]
method[R]
url[R]
Public Class Methods
new(method, url, headers = {}, **http_options)
click to toggle source
rubocop:disable Style/IfUnlessModifier
# File lib/omu_support/rest_client.rb, line 42 def initialize(method, url, headers = {}, **http_options) @method = method @url = url @headers = HEADERS.merge(headers) unless method.in?(SUPPORTED_HTTP_METHODS) raise HTTPMethodError, "unsupported HTTP method: #{method}" end build_http_object http_options end
Public Instance Methods
execute(payload = nil)
click to toggle source
rubocop:enable Style/IfUnlessModifier
# File lib/omu_support/rest_client.rb, line 55 def execute(payload = nil) klass = "Net::HTTP::#{method.capitalize}".constantize request = klass.new url, headers Response.new @http.request(request, payload) end
Private Instance Methods
build_http_object(http_options)
click to toggle source
# File lib/omu_support/rest_client.rb, line 67 def build_http_object(http_options) uri = URI.parse(url) @http = Net::HTTP.new uri.host, uri.port unsupported_options = http_options.keys - SUPPORTED_HTTP_OPTIONS.keys unless unsupported_options.empty? raise UnsupportedHTTPOptionError, "unsupported HTTP options: #{unsupported_options}" end http_options.each { |option, value| @http.public_send "#{option}=", value } end