mirror of
https://github.com/rest-client/rest-client.git
synced 2022-11-09 13:49:40 -05:00
Merge pull request #324 from rest-client/user-agent
Add a more descriptive rest-client user agent.
This commit is contained in:
commit
9c3c296c1b
3 changed files with 32 additions and 9 deletions
|
@ -1,3 +1,5 @@
|
|||
require 'rbconfig'
|
||||
|
||||
module RestClient
|
||||
module Platform
|
||||
# Return true if we are running on a darwin-based Ruby platform. This will
|
||||
|
@ -26,5 +28,22 @@ module RestClient
|
|||
# defined on mri >= 1.9
|
||||
RUBY_ENGINE == 'jruby'
|
||||
end
|
||||
|
||||
def self.architecture
|
||||
"#{RbConfig::CONFIG['host_os']} #{RbConfig::CONFIG['host_cpu']}"
|
||||
end
|
||||
|
||||
def self.ruby_agent_version
|
||||
case RUBY_ENGINE
|
||||
when 'jruby'
|
||||
"jruby/#{JRUBY_VERSION} (#{RUBY_VERSION}p#{RUBY_PATCHLEVEL})"
|
||||
else
|
||||
"#{RUBY_ENGINE}/#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
|
||||
end
|
||||
end
|
||||
|
||||
def self.default_user_agent
|
||||
"rest-client/#{VERSION} (#{architecture}) #{ruby_agent_version}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -562,7 +562,11 @@ module RestClient
|
|||
end
|
||||
|
||||
def default_headers
|
||||
{:accept => '*/*', :accept_encoding => 'gzip, deflate'}
|
||||
{
|
||||
:accept => '*/*',
|
||||
:accept_encoding => 'gzip, deflate',
|
||||
:user_agent => RestClient::Platform.default_user_agent,
|
||||
}
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -369,26 +369,26 @@ describe RestClient::Request do
|
|||
describe "logging" do
|
||||
it "logs a get request" do
|
||||
log = RestClient.log = []
|
||||
RestClient::Request.new(:method => :get, :url => 'http://url').log_request
|
||||
log[0].should eq %Q{RestClient.get "http://url", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate"\n}
|
||||
RestClient::Request.new(:method => :get, :url => 'http://url', :headers => {:user_agent => 'rest-client'}).log_request
|
||||
log[0].should eq %Q{RestClient.get "http://url", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "User-Agent"=>"rest-client"\n}
|
||||
end
|
||||
|
||||
it "logs a post request with a small payload" do
|
||||
log = RestClient.log = []
|
||||
RestClient::Request.new(:method => :post, :url => 'http://url', :payload => 'foo').log_request
|
||||
log[0].should eq %Q{RestClient.post "http://url", "foo", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"3"\n}
|
||||
RestClient::Request.new(:method => :post, :url => 'http://url', :payload => 'foo', :headers => {:user_agent => 'rest-client'}).log_request
|
||||
log[0].should eq %Q{RestClient.post "http://url", "foo", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"3", "User-Agent"=>"rest-client"\n}
|
||||
end
|
||||
|
||||
it "logs a post request with a large payload" do
|
||||
log = RestClient.log = []
|
||||
RestClient::Request.new(:method => :post, :url => 'http://url', :payload => ('x' * 1000)).log_request
|
||||
log[0].should eq %Q{RestClient.post "http://url", 1000 byte(s) length, "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"1000"\n}
|
||||
RestClient::Request.new(:method => :post, :url => 'http://url', :payload => ('x' * 1000), :headers => {:user_agent => 'rest-client'}).log_request
|
||||
log[0].should eq %Q{RestClient.post "http://url", 1000 byte(s) length, "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "Content-Length"=>"1000", "User-Agent"=>"rest-client"\n}
|
||||
end
|
||||
|
||||
it "logs input headers as a hash" do
|
||||
log = RestClient.log = []
|
||||
RestClient::Request.new(:method => :get, :url => 'http://url', :headers => { :accept => 'text/plain' }).log_request
|
||||
log[0].should eq %Q{RestClient.get "http://url", "Accept"=>"text/plain", "Accept-Encoding"=>"gzip, deflate"\n}
|
||||
RestClient::Request.new(:method => :get, :url => 'http://url', :headers => { :accept => 'text/plain', :user_agent => 'rest-client' }).log_request
|
||||
log[0].should eq %Q{RestClient.get "http://url", "Accept"=>"text/plain", "Accept-Encoding"=>"gzip, deflate", "User-Agent"=>"rest-client"\n}
|
||||
end
|
||||
|
||||
it "logs a response including the status code, content type, and result body size in bytes" do
|
||||
|
|
Loading…
Reference in a new issue