updated to latest version of rest-client
This commit is contained in:
parent
1145fc4042
commit
ef639040c3
2
deps/rest-client/README
vendored
2
deps/rest-client/README
vendored
|
@ -39,6 +39,8 @@ using curl at the command line. Better yet, require gem from within your
|
||||||
|
|
||||||
Written by Adam Wiggins (adam at heroku dot com)
|
Written by Adam Wiggins (adam at heroku dot com)
|
||||||
|
|
||||||
|
Patches contributed by: Chris Anderson, Greg Borenstein
|
||||||
|
|
||||||
Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
|
Released under the MIT License: http://www.opensource.org/licenses/mit-license.php
|
||||||
|
|
||||||
http://rest-client.heroku.com
|
http://rest-client.heroku.com
|
||||||
|
|
2
deps/rest-client/Rakefile
vendored
2
deps/rest-client/Rakefile
vendored
|
@ -30,7 +30,7 @@ require 'rake/gempackagetask'
|
||||||
require 'rake/rdoctask'
|
require 'rake/rdoctask'
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
|
|
||||||
version = "0.2"
|
version = "0.3"
|
||||||
name = "rest-client"
|
name = "rest-client"
|
||||||
|
|
||||||
spec = Gem::Specification.new do |s|
|
spec = Gem::Specification.new do |s|
|
||||||
|
|
20
deps/rest-client/lib/rest_client.rb
vendored
20
deps/rest-client/lib/rest_client.rb
vendored
|
@ -42,8 +42,8 @@ module RestClient
|
||||||
def initialize(args)
|
def initialize(args)
|
||||||
@method = args[:method] or raise ArgumentError, "must pass :method"
|
@method = args[:method] or raise ArgumentError, "must pass :method"
|
||||||
@url = args[:url] or raise ArgumentError, "must pass :url"
|
@url = args[:url] or raise ArgumentError, "must pass :url"
|
||||||
@payload = args[:payload]
|
|
||||||
@headers = args[:headers] || {}
|
@headers = args[:headers] || {}
|
||||||
|
@payload = process_payload(args[:payload])
|
||||||
@user = args[:user]
|
@user = args[:user]
|
||||||
@password = args[:password]
|
@password = args[:password]
|
||||||
end
|
end
|
||||||
|
@ -57,8 +57,7 @@ module RestClient
|
||||||
|
|
||||||
def execute_inner
|
def execute_inner
|
||||||
uri = parse_url(url)
|
uri = parse_url(url)
|
||||||
uri_path = uri.respond_to?(:request_uri) ? uri.request_uri : uri.path
|
transmit uri, net_http_class(method).new(uri.request_uri, make_headers(headers)), payload
|
||||||
transmit uri, net_http_class(method).new(uri_path, make_headers(headers)), payload
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_headers(user_headers)
|
def make_headers(user_headers)
|
||||||
|
@ -80,13 +79,22 @@ module RestClient
|
||||||
end
|
end
|
||||||
|
|
||||||
# A redirect was encountered; caught by execute to retry with the new url.
|
# A redirect was encountered; caught by execute to retry with the new url.
|
||||||
class Redirect < Exception; end
|
class Redirect < RuntimeError; end
|
||||||
|
|
||||||
# Request failed with an unhandled http error code.
|
# Request failed with an unhandled http error code.
|
||||||
class RequestFailed < Exception; end
|
class RequestFailed < RuntimeError; end
|
||||||
|
|
||||||
# Authorization is required to access the resource specified.
|
# Authorization is required to access the resource specified.
|
||||||
class Unauthorized < Exception; end
|
class Unauthorized < RuntimeError; end
|
||||||
|
|
||||||
|
def process_payload(p=nil)
|
||||||
|
unless p.is_a?(Hash)
|
||||||
|
p
|
||||||
|
else
|
||||||
|
@headers[:content_type] = 'application/x-www-form-urlencoded'
|
||||||
|
p.keys.map { |k| "#{k}=#{URI.escape(p[k].to_s)}" }.join("&")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def transmit(uri, req, payload)
|
def transmit(uri, req, payload)
|
||||||
setup_credentials(req)
|
setup_credentials(req)
|
||||||
|
|
15
deps/rest-client/spec/rest_client_spec.rb
vendored
15
deps/rest-client/spec/rest_client_spec.rb
vendored
|
@ -28,7 +28,7 @@ describe RestClient do
|
||||||
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload')
|
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload')
|
||||||
|
|
||||||
@uri = mock("uri")
|
@uri = mock("uri")
|
||||||
@uri.stub!(:path).and_return('/resource')
|
@uri.stub!(:request_uri).and_return('/resource')
|
||||||
@uri.stub!(:host).and_return('some')
|
@uri.stub!(:host).and_return('some')
|
||||||
@uri.stub!(:port).and_return(80)
|
@uri.stub!(:port).and_return(80)
|
||||||
end
|
end
|
||||||
|
@ -98,6 +98,19 @@ describe RestClient do
|
||||||
@request.transmit(@uri, 'req', nil)
|
@request.transmit(@uri, 'req', nil)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "passes non-hash payloads straight through" do
|
||||||
|
@request.process_payload("x").should == "x"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "converts a hash payload to urlencoded data" do
|
||||||
|
@request.process_payload(:a => 'b c').should == "a=b%20c"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "set urlencoded content_type header on hash payloads" do
|
||||||
|
@request.process_payload(:a => 1)
|
||||||
|
@request.headers[:content_type].should == 'application/x-www-form-urlencoded'
|
||||||
|
end
|
||||||
|
|
||||||
it "sets up the credentials prior to the request" do
|
it "sets up the credentials prior to the request" do
|
||||||
http = mock("net::http connection")
|
http = mock("net::http connection")
|
||||||
Net::HTTP.should_receive(:start).and_yield(http)
|
Net::HTTP.should_receive(:start).and_yield(http)
|
||||||
|
|
Loading…
Reference in a new issue