class Spine::Http::Request
Attributes
headers[R]
uri[R]
Public Class Methods
new(uri)
click to toggle source
# File lib/spine/http/request.rb, line 9 def initialize(uri) @uri = URI.parse(uri) @headers = {} @payload = '' end
Public Instance Methods
delete()
click to toggle source
# File lib/spine/http/request.rb, line 52 def delete request = Net::HTTP::Delete.new(uri.request_uri) execute(request) end
get()
click to toggle source
# File lib/spine/http/request.rb, line 30 def get execute(Net::HTTP::Get.new(uri.request_uri)) end
header(key, value)
click to toggle source
# File lib/spine/http/request.rb, line 20 def header(key, value) headers[key] = value self end
patch()
click to toggle source
# File lib/spine/http/request.rb, line 40 def patch request = Net::HTTP::Patch.new(uri.request_uri) add_payload(request) execute(request) end
payload(data, content_type = ContentTypes::Plain)
click to toggle source
# File lib/spine/http/request.rb, line 25 def payload(data, content_type = ContentTypes::Plain) @payload = content_type.dump(data) self end
post()
click to toggle source
# File lib/spine/http/request.rb, line 34 def post request = Net::HTTP::Post.new(uri.request_uri) add_payload(request) execute(request) end
put()
click to toggle source
# File lib/spine/http/request.rb, line 46 def put request = Net::HTTP::Put.new(uri.request_uri) add_payload(request) execute(request) end
query(parameters)
click to toggle source
# File lib/spine/http/request.rb, line 15 def query(parameters) uri.query = URI.encode_www_form(parameters) self end
Private Instance Methods
add_headers(request)
click to toggle source
# File lib/spine/http/request.rb, line 67 def add_headers(request) headers.each do |key, value| request[key] = value end end
add_payload(request)
click to toggle source
# File lib/spine/http/request.rb, line 59 def add_payload(request) if @payload.is_a?(Hash) request.set_form_data(@payload) else request.body = @payload end end
build_connection()
click to toggle source
# File lib/spine/http/request.rb, line 82 def build_connection http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == 'https') http end
execute(request)
click to toggle source
# File lib/spine/http/request.rb, line 73 def execute(request) add_headers(request) Response.new(http.request(request)) end
http()
click to toggle source
# File lib/spine/http/request.rb, line 78 def http @http ||= build_connection end