module RL
Constants
- VERSION
Public Class Methods
request(method,uri,headers={},body=nil, limit=10)
click to toggle source
# File lib/rest-less.rb, line 4 def self.request(method,uri,headers={},body=nil, limit=10) raise 'Redirect limit exceeded' if limit == 0 uri = URI(uri) klass = Net::HTTP.const_get(method.capitalize) raise "HTTP Method not supported: #{method}" if klass.nil? req = klass.new(uri) headers.each { |k,v| req[k.to_s] = v.to_s } req.body = body.to_s if body res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') { |http| http.request(req) } case res when Net::HTTPRedirection request(method,res['location'],headers,body, limit - 1) else new_headers = {} headers = res.to_hash headers.each_key do |k| new_headers[k] = headers[k][0] end [res.code.to_i,new_headers,res.body] end end