class Hknife::Request
Public Class Methods
new()
click to toggle source
# File lib/hknife.rb, line 12 def initialize @headers = {} @response = nil @requestor = nil @request = nil @http_client = nil end
Public Instance Methods
async(&block)
click to toggle source
# File lib/hknife.rb, line 93 def async(&block) @async_thread = Thread.new do @response = @requestor.call(@request) block.call @response if block_given? end end
delete(uri)
click to toggle source
# File lib/hknife.rb, line 36 def delete(uri) uriObj = URI.parse(uri) @http_client = Net::HTTP.new(uriObj.host, uriObj.port) @http_client.use_ssl = uriObj.scheme == 'https' @request = Net::HTTP::Delete.new(uriObj.path) @requestor = lambda do |request| res = @http_client.request(request) case res['Content-Type'] when /application\/json/ then res.body = JSON.parse(res.body) end res end self end
get(uri)
click to toggle source
# File lib/hknife.rb, line 20 def get(uri) uriObj = URI.parse(uri) @http_client = Net::HTTP.new(uriObj.host, uriObj.port) @http_client.use_ssl = uriObj.scheme == 'https' @request = Net::HTTP::Get.new(uriObj.path) @requestor = lambda do |request| res = @http_client.request(request) case res['Content-Type'] when /application\/json/ then res.body = JSON.parse(res.body) end res end self end
header(hsh)
click to toggle source
# File lib/hknife.rb, line 85 def header(hsh) @headers = {} if @headers.nil? hsh.each do |key, val| @headers[key] = val end self end
post_form(uri, data)
click to toggle source
# File lib/hknife.rb, line 68 def post_form(uri, data) uriObj = URI.parse(uri) @http_client = Net::HTTP.new(uriObj.host, uriObj.port) @http_client.use_ssl = uriObj.scheme == 'https' @request = Net::HTTP::Post.new(uriObj.path) @requestor = lambda do |request| res = @http_client.request(@request, URI.encode_www_form(data)) case res['Content-Type'] when /application\/json/ then res.body = JSON.parse(res.body) end res end self end
put(uri, data)
click to toggle source
# File lib/hknife.rb, line 52 def put(uri, data) uriObj = URI.parse(uri) @http_client = Net::HTTP.new(uriObj.host, uriObj.port) @http_client.use_ssl = uriObj.scheme == 'https' @request = Net::HTTP::Put.new(uriObj.path) @requestor = lambda do |request| res = @http_client.request(request) case res['Content-Type'] when /application\/json/ then res.body = JSON.parse(res.body) end res end self end
request()
click to toggle source
# File lib/hknife.rb, line 104 def request @request end
response()
click to toggle source
# File lib/hknife.rb, line 108 def response @headers.each_pair {|k, v| @request.add_field(k, v)} @response = @requestor.call(@request) @response end
wait()
click to toggle source
# File lib/hknife.rb, line 100 def wait @async_thread.join end