class DoneDone::Http
Attributes
_debug[R]
_request[R]
data[R]
domain[R]
files[R]
get_class[R]
http_class[R]
method_url[R]
multipart_post_class[R]
post_class[R]
put_class[R]
ssl_verify_mode[R]
ssl_version[R]
Public Class Methods
new(domain, username, password, options={})
click to toggle source
# File lib/donedone/http.rb, line 14 def initialize(domain, username, password, options={}) @domain = domain @_username = username @_password = password @put_class = options[:put_class] || Net::HTTP::Put @get_class = options[:get_class] || Net::HTTP::Get @post_class = options[:post_class] || Net::HTTP::Post @multipart_post_class = options[:multipart_post_class] || Multipart::Post @http_class = options[:http_class] || Net::HTTP @ssl_verify_mode = options[:ssl_verify_mode] || Constant::SSL_VERIFY_MODE @ssl_version = options[:ssl_version] || Constant::SSL_VERSION end
Public Instance Methods
get(method_url, options={})
click to toggle source
# File lib/donedone/http.rb, line 46 def get(method_url, options={}) @method_url = method_url reset(options) request(get_class) end
host()
click to toggle source
# File lib/donedone/http.rb, line 39 def host unless @host @host = Constant.url_for('HOST', domain) end @host end
post(method_url, options={})
click to toggle source
# File lib/donedone/http.rb, line 60 def post(method_url, options={}) @method_url = method_url reset(options) request(post_class) do files ? append_multipart_data : append_any_form_data end end
put(method_url, options={})
click to toggle source
# File lib/donedone/http.rb, line 52 def put(method_url, options={}) @method_url = method_url reset(options) request(put_class) do append_any_form_data end end
reset(options = {})
click to toggle source
# File lib/donedone/http.rb, line 28 def reset(options = {}) @data = options[:data] @files = options[:files] @_request = nil @uri = nil @base_url = nil @host = nil @http = nil @_debug = options.has_key?(:debug) ? options[:debug] : false end
Private Instance Methods
append_any_form_data()
click to toggle source
# File lib/donedone/http.rb, line 108 def append_any_form_data #(data=data) if data debug { "form_data: #{data.inspect}" } _request.set_form_data(data) end end
append_multipart_data()
click to toggle source
# File lib/donedone/http.rb, line 115 def append_multipart_data #(files=files, data=data) body, content_type, useragent = multipart_post_class.prepare_query( files.merge(data) ) debug { "params: #{params.inspect}; body: #{body.inspect}, content_type: #{content_type.inspect}, useragent: #{useragent.inspect}" } @_request.content_type = content_type @_request.content_length = body.size @_request["User-Agent"] = useragent @_request.body = body end
base_url()
click to toggle source
# File lib/donedone/http.rb, line 81 def base_url unless @base_url @base_url = Constant.url_for('BASE_URL', host) end @base_url end
debug() { || ... }
click to toggle source
# File lib/donedone/http.rb, line 127 def debug puts(yield) if _debug && block_given? end
http()
click to toggle source
# File lib/donedone/http.rb, line 71 def http unless @http @http = http_class.new(uri.host, uri.port) @http.use_ssl = true @http.verify_mode = ssl_verify_mode @http.ssl_version = ssl_version end @http end
request(method_class) { || ... }
click to toggle source
# File lib/donedone/http.rb, line 95 def request(method_class) debug { "#{method_class.name}, #{uri.request_uri.inspect} - host: #{uri.host}, - port: #{uri.port}" } @_request = method_class.new(uri.request_uri) yield if block_given? debug { "uri: #{uri.inspect}, files: #{files.inspect}" } _request.basic_auth(@_username, @_password) debug { "request: #{_request.to_hash.inspect}" } http.request(_request) end
uri()
click to toggle source
# File lib/donedone/http.rb, line 88 def uri unless @uri @uri = URI.parse("#{base_url}#{method_url}") end @uri end