class CurseClient::HTTP
Public Class Methods
get(uri, options = {}, &block)
click to toggle source
# File lib/curse_client/http.rb, line 6 def self.get(uri, options = {}, &block) uri = create_uri(uri) request = Net::HTTP::Get.new(uri.request_uri) request.initialize_http_header(options[:headers]) if options[:headers] send_request(uri, request, &block) end
post(uri, body, options = {}, &block)
click to toggle source
# File lib/curse_client/http.rb, line 13 def self.post(uri, body, options = {}, &block) uri = create_uri(uri) request = Net::HTTP::Post.new(uri.request_uri) request.initialize_http_header(options[:headers]) if options[:headers] request.body = parse_request_body(body, options[:format] || :json) send_request(uri, request, &block) end
Private Class Methods
create_uri(uri)
click to toggle source
# File lib/curse_client/http.rb, line 23 def self.create_uri(uri) return uri if uri.is_a?(URI) URI.parse(uri) end
parse_request_body(body, format)
click to toggle source
# File lib/curse_client/http.rb, line 28 def self.parse_request_body(body, format) case format when :json JSON.generate(body) else raise NotImplementedError, "Format #{format} is not implemented" end end
send_request(uri, request) { |response| ... }
click to toggle source
# File lib/curse_client/http.rb, line 37 def self.send_request(uri, request) Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http| return http.request(request) do |response| yield response if block_given? end end end