class APIReaper::Requester
This is a Net HTTP requester class.
Public Class Methods
new(method, url, opts)
click to toggle source
Class constructor method
# File lib/apireaper/requester.rb, line 26 def initialize(method, url, opts) @method = method @uri = URI.parse(url) @opts = opts @http = Net::HTTP.new(@uri.host, @uri.port) @http.use_ssl = @uri.scheme.eql?('https') @http.verify_mode = OpenSSL::SSL::VERIFY_NONE if opts['insecure'] end
Public Instance Methods
basic_auth(request)
click to toggle source
Set the authentication data
# File lib/apireaper/requester.rb, line 42 def basic_auth(request) unless @opts['user'].nil? || @opts['password'].nil? request.basic_auth(@opts['user'], @opts['password']) end request end
exit_with_error(errno, message)
click to toggle source
Exit with the specified errno and message
# File lib/apireaper/requester.rb, line 36 def exit_with_error(errno, message) puts message unless @opts['quiet'] exit errno end
format_data(request)
click to toggle source
Select the right data type
# File lib/apireaper/requester.rb, line 50 def format_data(request) return request if @opts['data'].nil? if json?(@opts['data']) then format_json_data(request) else format_www_form_data(request) end end
format_header(request)
click to toggle source
Set the headers given as argument
# File lib/apireaper/requester.rb, line 58 def format_header(request) unless @opts['header'].nil? @opts['header'].split(',').each do |h| (key, value) = h.split(':') request[key] = value end end request end
format_json_data(request)
click to toggle source
Set json data as request body
# File lib/apireaper/requester.rb, line 69 def format_json_data(request) request.body = @opts['data'] request end
format_www_form_data(request)
click to toggle source
Split the data string into a hash
# File lib/apireaper/requester.rb, line 75 def format_www_form_data(request) request.set_form_data(CGI.parse(@opts['data'])) request end
json?(str)
click to toggle source
Check if the data string is a well formated json
# File lib/apireaper/requester.rb, line 81 def json?(str) JSON.parse(str) true rescue JSON::ParserError false end
request()
click to toggle source
Select request method
# File lib/apireaper/requester.rb, line 118 def request case @method.upcase when 'DELETE' then rest_request_delete when 'GET' then rest_request_get when 'POST' then rest_request_post when 'PUT' then rest_request_put else raise "#{@method.upcase} is an unknown method" end end
rest_request_delete()
click to toggle source
DELETE method
# File lib/apireaper/requester.rb, line 89 def rest_request_delete exit_with_error(3, 'DELETE is not yet implemented') # TODO end
rest_request_get()
click to toggle source
GET method
# File lib/apireaper/requester.rb, line 95 def rest_request_get req = Net::HTTP::Get.new(@uri.request_uri) req = format_header(req) req = basic_auth(req) @http.request(req) end
rest_request_post()
click to toggle source
POST method
# File lib/apireaper/requester.rb, line 103 def rest_request_post req = Net::HTTP::Post.new(@uri.request_uri) req = format_data(req) req = format_header(req) req = basic_auth(req) @http.request(req) end
rest_request_put()
click to toggle source
PUT method
# File lib/apireaper/requester.rb, line 112 def rest_request_put exit_with_error(3, 'PUT is not yet implemented') # TODO end