Module: Rubyhorn::RestClient::Common
- Included in:
- MatterhornClient
- Defined in:
- lib/rubyhorn/rest_client/common.rb
Instance Attribute Summary collapse
-
#cookie ⇒ Object
readonly
Returns the value of attribute cookie.
-
#http ⇒ Object
readonly
Returns the value of attribute http.
Instance Method Summary collapse
- #connect ⇒ Object
- #execute_request(uri, req) ⇒ Object
- #get(url, args = {}) ⇒ Object
- #login(url = "welcome.html") ⇒ Object
- #multipart_post(url, file, args = {}) ⇒ Object
- #post(uri, args = {}) ⇒ Object
Instance Attribute Details
#cookie ⇒ Object (readonly)
Returns the value of attribute cookie.
9 10 11 |
# File 'lib/rubyhorn/rest_client/common.rb', line 9 def @cookie end |
#http ⇒ Object (readonly)
Returns the value of attribute http.
8 9 10 |
# File 'lib/rubyhorn/rest_client/common.rb', line 8 def http @http end |
Instance Method Details
#connect ⇒ Object
11 12 13 14 15 16 |
# File 'lib/rubyhorn/rest_client/common.rb', line 11 def connect uri = URI.parse(config[:url]) @http = Net::HTTP.new uri.host, uri.port @http.set_debug_output $stderr if !config[:debug].nil? and config[:debug].downcase == 'true' login end |
#execute_request(uri, req) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/rubyhorn/rest_client/common.rb', line 25 def execute_request uri, req uri.user = config[:user] uri.password = config[:password] head = Net::HTTP::Head.new uri.request_uri head['X-REQUESTED-AUTH'] = 'Digest' res = @http.request head # if res.code.to_i != 200 digest_auth = Net::HTTP::DigestAuth.new auth = digest_auth.auth_header uri, res['www-authenticate'], req.method req.add_field 'Authorization', auth res = @http.request req # end # res end |
#get(url, args = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rubyhorn/rest_client/common.rb', line 41 def get url, args = {} query = args.to_a.each { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&") url = config[:url] + url if !query.empty? url << "?" << query end uri = URI.parse(url) request = Net::HTTP::Get.new(uri.request_uri) request['Cookie'] = @cookie response = execute_request(uri, request) return response.body end |
#login(url = "welcome.html") ⇒ Object
18 19 20 21 22 23 |
# File 'lib/rubyhorn/rest_client/common.rb', line 18 def login url = "welcome.html" uri = URI.parse(config[:url] + url) req = Net::HTTP::Head.new uri.request_uri res = execute_request(uri, req) @cookie = res['set-cookie'] end |
#multipart_post(url, file, args = {}) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rubyhorn/rest_client/common.rb', line 58 def multipart_post url, file, args = {} if args.has_key? "filename" filename = args["filename"] else filename = File.basename file.path end reqparams = args.to_a mime_type = MIME::Types.of(filename) reqparams << ["BODY", UploadIO.new(file, mime_type, filename)] url = config[:url] + url uri = URI.parse(url) req = Net::HTTP::Post::Multipart.new uri.path, reqparams req['Cookie'] = @cookie res = execute_request(uri, req) return res.body end |
#post(uri, args = {}) ⇒ Object
54 55 56 |
# File 'lib/rubyhorn/rest_client/common.rb', line 54 def post uri, args = {} #TODO implement me! end |