class Object
Public Instance Methods
has_options(options={}, required=[])
click to toggle source
# File lib/redphone/helpers.rb, line 57 def has_options(options={}, required=[]) required.each do |option| raise "You must supply a #{option}" unless options.has_key?(option) && !options[option].nil? end end
http_request(options={})
click to toggle source
# File lib/redphone/helpers.rb, line 8 def http_request(options={}) raise "You must supply a URI" if options[:uri].nil? method = options[:method] || "get" uri = URI.parse(options[:uri]) user = options[:user] password = options[:password] headers = options[:headers] || Hash.new parameters = options[:parameters] || Hash.new body = options[:body] proxy_address = options[:proxy_address] proxy_port = options[:proxy_port] http = if @proxy_address.nil? Net::HTTP.new(uri.host, uri.port) else Net::HTTP::Proxy(@proxy_address, @proxy_port).new(uri.host, uri.port) end if options[:ssl] == true http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end request_uri = uri.request_uri unless parameters.empty? request_uri += "?" request_uri += parameters.map { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&") end request = case method when "get" Net::HTTP::Get.new(request_uri) when "post" Net::HTTP::Post.new(request_uri) when "put" Net::HTTP::Put.new(request_uri) when "delete" Net::HTTP::Delete.new(request_uri) when "patch" Net::HTTP::Patch.new(request_uri) else raise "Unknown HTTP method: #{method}" end headers.each do |header, value| request.add_field(header, value) end if user && password request.basic_auth user, password end request.body = body http.request(request) end