class Vra::Http::Request
Attributes
params[R]
Public Class Methods
new(params)
click to toggle source
# File lib/vra/http.rb, line 28 def initialize(params) @params = params end
Public Instance Methods
call()
click to toggle source
# File lib/vra/http.rb, line 44 def call uri = URI(params[:url]) || raise(":url required") ssl_params = { use_ssl: uri.scheme == "https" } ssl_params[:verify_mode] = OpenSSL::SSL::VERIFY_NONE unless verify_ssl? Net::HTTP.start(uri.host, uri.port, ssl_params) do |http| request = http_request(params[:method], uri) request.initialize_http_header(params[:headers] || {}) request.body = params[:payload] || "" Response.new(http.request(request)) end end
http_request(method, uri)
click to toggle source
# File lib/vra/http.rb, line 59 def http_request(method, uri) type = { get: Net::HTTP::Get, head: Net::HTTP::Head, post: Net::HTTP::Post, }.fetch(method, nil) raise "Unknown HTTP method #{method}!" unless type type.new(uri) end
redirect_to(location)
click to toggle source
# File lib/vra/http.rb, line 36 def redirect_to(location) new(url: location) end
redirectable?()
click to toggle source
# File lib/vra/http.rb, line 32 def redirectable? %i{get head}.include?(params[:method]) end
see_other(location)
click to toggle source
# File lib/vra/http.rb, line 40 def see_other(location) redirect_to(location).new(method: :get) end
Protected Instance Methods
new(new_params)
click to toggle source
# File lib/vra/http.rb, line 73 def new(new_params) self.class.new(params.dup.merge(new_params)) end
verify_ssl?()
click to toggle source
# File lib/vra/http.rb, line 77 def verify_ssl? return true if params[:verify_ssl].nil? params[:verify_ssl] end