rest-client-maestro 1.7.3.maestro → 1.7.4.maestro
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.travis.yml +1 -0
- data/lib/restclient/exceptions.rb +7 -2
- data/lib/restclient/payload.rb +0 -2
- data/lib/restclient/request.rb +58 -10
- data/lib/restclient/version.rb +7 -0
- data/lib/restclient.rb +1 -6
- data/rest-client-maestro.gemspec +10 -6
- data/spec/integration/capath_digicert/244b5494.0 +19 -0
- data/spec/integration/capath_digicert/81b9768f.0 +19 -0
- data/spec/integration/{capath_equifax → capath_digicert}/README +0 -0
- data/spec/integration/capath_digicert/digicert.crt +19 -0
- data/spec/integration/certs/digicert.crt +19 -0
- data/spec/integration/request_spec.rb +4 -4
- data/spec/unit/request_spec.rb +111 -0
- data/spec/unit/restclient_spec.rb +6 -0
- metadata +121 -119
- data/spec/integration/capath_equifax/578d5c04.0 +0 -19
- data/spec/integration/capath_equifax/594f1775.0 +0 -19
- data/spec/integration/capath_equifax/equifax.crt +0 -19
- data/spec/integration/certs/equifax.crt +0 -19
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OWUzZTU3YzFkNDk0MGIwMDEwNzliNWM5ZjViM2MwM2E5OGQ4YjlmZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MDlkNzEyNmVjZmQ0NDNmYTg5MjBhNjI5ZmNhMjRlZTY3YmY1MTE4Zg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OGJhMTY4NGYyZWJmZjhkODU3MDI0YmE1NzkwMmM0ZjY4NDllNmExYTZiYjRk
|
10
|
+
MWY5ZDlkMTBiMThkYTFlOWFkYWIxYTY3OWNmYjMzY2I2MzE5MzRjZjQ3NzY2
|
11
|
+
N2JkNGVlNjBkZDE1MjM0ZDViZDFhZTUxMDYwZTNiM2NkYTEyY2M=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZjY5ZjhjZTllN2RjNDZjYmQ3MzEyYWYxMzMwMzIzZDMzMGJhN2ZjZGVkNTc2
|
14
|
+
ZWZhZWQ0OWRhZWQ0NzlhZGVkM2JlNWYwMGU4ZWZlODc2OGRkODM2MWJhOGFk
|
15
|
+
MTNhNDQxYzIwNWU4MzdlZGRkYzk2MWEzMjQyMGIyMzFjMzA2N2U=
|
data/.travis.yml
CHANGED
@@ -40,13 +40,16 @@ module RestClient
|
|
40
40
|
415 => 'Unsupported Media Type',
|
41
41
|
416 => 'Requested Range Not Satisfiable',
|
42
42
|
417 => 'Expectation Failed',
|
43
|
-
418 => 'I\'m A Teapot',
|
43
|
+
418 => 'I\'m A Teapot', #RFC2324
|
44
44
|
421 => 'Too Many Connections From This IP',
|
45
45
|
422 => 'Unprocessable Entity', #WebDAV
|
46
46
|
423 => 'Locked', #WebDAV
|
47
47
|
424 => 'Failed Dependency', #WebDAV
|
48
48
|
425 => 'Unordered Collection', #WebDAV
|
49
49
|
426 => 'Upgrade Required',
|
50
|
+
428 => 'Precondition Required', #RFC6585
|
51
|
+
429 => 'Too Many Requests', #RFC6585
|
52
|
+
431 => 'Request Header Fields Too Large', #RFC6585
|
50
53
|
449 => 'Retry With', #Microsoft
|
51
54
|
450 => 'Blocked By Windows Parental Controls', #Microsoft
|
52
55
|
|
@@ -59,7 +62,9 @@ module RestClient
|
|
59
62
|
506 => 'Variant Also Negotiates',
|
60
63
|
507 => 'Insufficient Storage', #WebDAV
|
61
64
|
509 => 'Bandwidth Limit Exceeded', #Apache
|
62
|
-
510 => 'Not Extended'
|
65
|
+
510 => 'Not Extended',
|
66
|
+
511 => 'Network Authentication Required', # RFC6585
|
67
|
+
}
|
63
68
|
|
64
69
|
# Compatibility : make the Response act like a Net::HTTPResponse when needed
|
65
70
|
module ResponseForException
|
data/lib/restclient/payload.rb
CHANGED
data/lib/restclient/request.rb
CHANGED
@@ -21,7 +21,8 @@ module RestClient
|
|
21
21
|
# * :raw_response return a low-level RawResponse instead of a Response
|
22
22
|
# * :max_redirects maximum number of redirections (default to 10)
|
23
23
|
# * :verify_ssl enable ssl verification, possible values are constants from OpenSSL::SSL
|
24
|
-
# * :timeout and :open_timeout
|
24
|
+
# * :timeout and :open_timeout are how long to wait for a response and to
|
25
|
+
# open a connection, in seconds. Pass nil to disable the timeout.
|
25
26
|
# * :ssl_client_cert, :ssl_client_key, :ssl_ca_file, :ssl_ca_path
|
26
27
|
# * :ssl_version specifies the SSL version for the underlying Net::HTTP connection (defaults to 'SSLv3')
|
27
28
|
class Request
|
@@ -48,8 +49,12 @@ module RestClient
|
|
48
49
|
@payload = Payload.generate(args[:payload])
|
49
50
|
@user = args[:user]
|
50
51
|
@password = args[:password]
|
51
|
-
|
52
|
-
|
52
|
+
if args.include?(:timeout)
|
53
|
+
@timeout = args[:timeout]
|
54
|
+
end
|
55
|
+
if args.include?(:open_timeout)
|
56
|
+
@open_timeout = args[:open_timeout]
|
57
|
+
end
|
53
58
|
@block_response = args[:block_response]
|
54
59
|
@raw_response = args[:raw_response] || false
|
55
60
|
@verify_ssl = args[:verify_ssl] || false
|
@@ -92,13 +97,46 @@ module RestClient
|
|
92
97
|
|
93
98
|
def make_headers user_headers
|
94
99
|
unless @cookies.empty?
|
95
|
-
|
100
|
+
|
101
|
+
# Validate that the cookie names and values look sane. If you really
|
102
|
+
# want to pass scary characters, just set the Cookie header directly.
|
103
|
+
# RFC6265 is actually much more restrictive than we are.
|
104
|
+
@cookies.each do |key, val|
|
105
|
+
unless valid_cookie_key?(key)
|
106
|
+
raise ArgumentError.new("Invalid cookie name: #{key.inspect}")
|
107
|
+
end
|
108
|
+
unless valid_cookie_value?(val)
|
109
|
+
raise ArgumentError.new("Invalid cookie value: #{val.inspect}")
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
user_headers[:cookie] = @cookies.map { |key, val| "#{key}=#{val}" }.sort.join('; ')
|
96
114
|
end
|
97
115
|
headers = stringify_headers(default_headers).merge(stringify_headers(user_headers))
|
98
116
|
headers.merge!(@payload.headers) if @payload
|
99
117
|
headers
|
100
118
|
end
|
101
119
|
|
120
|
+
# Do some sanity checks on cookie keys.
|
121
|
+
#
|
122
|
+
# Properly it should be a valid TOKEN per RFC 2616, but lots of servers are
|
123
|
+
# more liberal.
|
124
|
+
#
|
125
|
+
# Disallow the empty string as well as keys containing control characters,
|
126
|
+
# equals sign, semicolon, comma, or space.
|
127
|
+
#
|
128
|
+
def valid_cookie_key?(string)
|
129
|
+
return false if string.empty?
|
130
|
+
|
131
|
+
! Regexp.new('[\x0-\x1f\x7f=;, ]').match(string)
|
132
|
+
end
|
133
|
+
|
134
|
+
# Validate cookie values. Rather than following RFC 6265, allow anything
|
135
|
+
# but control characters, comma, and semicolon.
|
136
|
+
def valid_cookie_value?(value)
|
137
|
+
! Regexp.new('[\x0-\x1f\x7f,;]').match(value)
|
138
|
+
end
|
139
|
+
|
102
140
|
def net_http_class
|
103
141
|
if RestClient.proxy
|
104
142
|
proxy_uri = URI.parse(RestClient.proxy)
|
@@ -167,12 +205,21 @@ module RestClient
|
|
167
205
|
net.key = @ssl_client_key if @ssl_client_key
|
168
206
|
net.ca_file = @ssl_ca_file if @ssl_ca_file
|
169
207
|
net.ca_path = @ssl_ca_path if @ssl_ca_path
|
170
|
-
net.read_timeout = @timeout if @timeout
|
171
|
-
net.open_timeout = @open_timeout if @open_timeout
|
172
208
|
|
173
|
-
|
174
|
-
|
175
|
-
|
209
|
+
if defined? @timeout
|
210
|
+
if @timeout == -1
|
211
|
+
warn 'To disable read timeouts, please set timeout to nil instead of -1'
|
212
|
+
@timeout = nil
|
213
|
+
end
|
214
|
+
net.read_timeout = @timeout
|
215
|
+
end
|
216
|
+
if defined? @open_timeout
|
217
|
+
if @open_timeout == -1
|
218
|
+
warn 'To disable open timeouts, please set open_timeout to nil instead of -1'
|
219
|
+
@open_timeout = nil
|
220
|
+
end
|
221
|
+
net.open_timeout = @open_timeout
|
222
|
+
end
|
176
223
|
|
177
224
|
RestClient.before_execution_procs.each do |before_proc|
|
178
225
|
before_proc.call(req, args)
|
@@ -205,7 +252,7 @@ module RestClient
|
|
205
252
|
end
|
206
253
|
rescue EOFError
|
207
254
|
raise RestClient::ServerBrokeConnection
|
208
|
-
rescue Timeout::Error
|
255
|
+
rescue Timeout::Error, Errno::ETIMEDOUT
|
209
256
|
raise RestClient::RequestTimeout
|
210
257
|
end
|
211
258
|
|
@@ -219,6 +266,7 @@ module RestClient
|
|
219
266
|
# Stolen from http://www.ruby-forum.com/topic/166423
|
220
267
|
# Kudos to _why!
|
221
268
|
@tf = Tempfile.new("rest-client")
|
269
|
+
@tf.binmode
|
222
270
|
size, total = 0, http_response.header['Content-Length'].to_i
|
223
271
|
http_response.read_body do |chunk|
|
224
272
|
@tf.write chunk
|
data/lib/restclient.rb
CHANGED
@@ -9,6 +9,7 @@ rescue LoadError => e
|
|
9
9
|
raise LoadError, "no such file to load -- net/https. Try running apt-get install libopenssl-ruby"
|
10
10
|
end
|
11
11
|
|
12
|
+
require File.dirname(__FILE__) + '/restclient/version'
|
12
13
|
require File.dirname(__FILE__) + '/restclient/exceptions'
|
13
14
|
require File.dirname(__FILE__) + '/restclient/request'
|
14
15
|
require File.dirname(__FILE__) + '/restclient/abstract_response'
|
@@ -103,12 +104,6 @@ module RestClient
|
|
103
104
|
@@log = create_log log
|
104
105
|
end
|
105
106
|
|
106
|
-
def self.version
|
107
|
-
version_path = File.dirname(__FILE__) + "/../VERSION"
|
108
|
-
return File.read(version_path).chomp if File.file?(version_path)
|
109
|
-
"0.0.0"
|
110
|
-
end
|
111
|
-
|
112
107
|
# Create a log that respond to << like a logger
|
113
108
|
# param can be 'stdout', 'stderr', a string (then we will log to that file) or a logger (then we return it)
|
114
109
|
def self.create_log param
|
data/rest-client-maestro.gemspec
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
+
require File.expand_path("../lib/restclient/version", __FILE__)
|
4
|
+
|
3
5
|
Gem::Specification.new do |s|
|
4
6
|
s.name = 'rest-client-maestro'
|
5
|
-
s.version = '1.7.
|
7
|
+
s.version = '1.7.4.maestro'
|
6
8
|
s.authors = ['REST Client Team']
|
7
9
|
s.description = 'A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.'
|
8
10
|
s.license = 'MIT'
|
@@ -14,10 +16,12 @@ Gem::Specification.new do |s|
|
|
14
16
|
s.homepage = 'http://github.com/maestrodev/rest-client'
|
15
17
|
s.summary = 'Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.'
|
16
18
|
|
17
|
-
s.
|
18
|
-
s.add_development_dependency(
|
19
|
-
s.add_development_dependency(
|
20
|
-
s.
|
21
|
-
s.
|
19
|
+
s.add_dependency('mime-types', '~> 2.0')
|
20
|
+
s.add_development_dependency('webmock', '~> 1.4')
|
21
|
+
s.add_development_dependency('rspec', '~> 2.4')
|
22
|
+
s.add_development_dependency('pry')
|
23
|
+
s.add_development_dependency('pry-doc')
|
24
|
+
s.add_dependency('netrc', '~> 0.7.7')
|
25
|
+
s.add_dependency('rdoc', '>= 2.4.2')
|
22
26
|
end
|
23
27
|
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
3
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
4
|
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
5
|
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
6
|
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
7
|
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
8
|
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
9
|
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
10
|
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
11
|
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
12
|
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
13
|
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
14
|
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
15
|
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
16
|
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
17
|
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
18
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
19
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
3
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
4
|
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
5
|
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
6
|
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
7
|
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
8
|
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
9
|
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
10
|
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
11
|
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
12
|
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
13
|
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
14
|
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
15
|
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
16
|
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
17
|
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
18
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
19
|
+
-----END CERTIFICATE-----
|
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
3
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
4
|
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
5
|
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
6
|
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
7
|
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
8
|
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
9
|
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
10
|
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
11
|
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
12
|
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
13
|
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
14
|
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
15
|
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
16
|
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
17
|
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
18
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
19
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG
|
3
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw
|
4
|
+
KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw
|
5
|
+
MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ
|
6
|
+
MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu
|
7
|
+
Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t
|
8
|
+
Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS
|
9
|
+
OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3
|
10
|
+
MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ
|
11
|
+
NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe
|
12
|
+
h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB
|
13
|
+
Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY
|
14
|
+
JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ
|
15
|
+
V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp
|
16
|
+
myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
|
17
|
+
mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
|
18
|
+
vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
|
19
|
+
-----END CERTIFICATE-----
|
@@ -13,9 +13,9 @@ describe RestClient::Request do
|
|
13
13
|
it "is successful with the correct ca_file" do
|
14
14
|
request = RestClient::Request.new(
|
15
15
|
:method => :get,
|
16
|
-
:url => 'https://www.mozilla.
|
16
|
+
:url => 'https://www.mozilla.org',
|
17
17
|
:verify_ssl => OpenSSL::SSL::VERIFY_PEER,
|
18
|
-
:ssl_ca_file => File.join(File.dirname(__FILE__), "certs", "
|
18
|
+
:ssl_ca_file => File.join(File.dirname(__FILE__), "certs", "digicert.crt")
|
19
19
|
)
|
20
20
|
expect { request.execute }.to_not raise_error
|
21
21
|
end
|
@@ -23,9 +23,9 @@ describe RestClient::Request do
|
|
23
23
|
it "is successful with the correct ca_path" do
|
24
24
|
request = RestClient::Request.new(
|
25
25
|
:method => :get,
|
26
|
-
:url => 'https://www.mozilla.
|
26
|
+
:url => 'https://www.mozilla.org',
|
27
27
|
:verify_ssl => OpenSSL::SSL::VERIFY_PEER,
|
28
|
-
:ssl_ca_path => File.join(File.dirname(__FILE__), "
|
28
|
+
:ssl_ca_path => File.join(File.dirname(__FILE__), "capath_digicert")
|
29
29
|
)
|
30
30
|
expect { request.execute }.to_not raise_error
|
31
31
|
end
|
data/spec/unit/request_spec.rb
CHANGED
@@ -114,6 +114,41 @@ describe RestClient::Request do
|
|
114
114
|
@request.make_headers({}).should eq({ 'Foo' => 'bar', 'Cookie' => 'session_id=1; user_id=someone'})
|
115
115
|
end
|
116
116
|
|
117
|
+
it "does not escape or unescape cookies" do
|
118
|
+
cookie = 'Foo%20:Bar%0A~'
|
119
|
+
@request = RestClient::Request.new(:method => 'get', :url => 'example.com',
|
120
|
+
:cookies => {:test => cookie})
|
121
|
+
@request.should_receive(:default_headers).and_return({'Foo' => 'bar'})
|
122
|
+
@request.make_headers({}).should eq({
|
123
|
+
'Foo' => 'bar',
|
124
|
+
'Cookie' => "test=#{cookie}"
|
125
|
+
})
|
126
|
+
end
|
127
|
+
|
128
|
+
it "rejects cookie names containing invalid characters" do
|
129
|
+
# Cookie validity is something of a mess, but we should reject the worst of
|
130
|
+
# the RFC 6265 (4.1.1) prohibited characters such as control characters.
|
131
|
+
|
132
|
+
['', 'foo=bar', 'foo;bar', "foo\nbar"].each do |cookie_name|
|
133
|
+
lambda {
|
134
|
+
RestClient::Request.new(:method => 'get', :url => 'example.com',
|
135
|
+
:cookies => {cookie_name => 'value'})
|
136
|
+
}.should raise_error(ArgumentError, /\AInvalid cookie name/)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
it "rejects cookie values containing invalid characters" do
|
141
|
+
# Cookie validity is something of a mess, but we should reject the worst of
|
142
|
+
# the RFC 6265 (4.1.1) prohibited characters such as control characters.
|
143
|
+
|
144
|
+
['foo,bar', 'foo;bar', "foo\nbar"].each do |cookie_value|
|
145
|
+
lambda {
|
146
|
+
RestClient::Request.new(:method => 'get', :url => 'example.com',
|
147
|
+
:cookies => {'test' => cookie_value})
|
148
|
+
}.should raise_error(ArgumentError, /\AInvalid cookie value/)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
117
152
|
it "uses netrc credentials" do
|
118
153
|
URI.stub(:parse).and_return(double('uri', :user => nil, :password => nil, :host => 'example.com'))
|
119
154
|
Netrc.stub(:read).and_return('example.com' => ['a', 'b'])
|
@@ -285,6 +320,24 @@ describe RestClient::Request do
|
|
285
320
|
lambda { @request.transmit(@uri, 'req', nil) }.should raise_error(RestClient::ServerBrokeConnection)
|
286
321
|
end
|
287
322
|
|
323
|
+
it "catches OpenSSL::SSL::SSLError and raise it back without more informative message" do
|
324
|
+
@http.stub(:request).and_raise(OpenSSL::SSL::SSLError)
|
325
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
326
|
+
lambda { @request.transmit(@uri, 'req', nil) }.should raise_error(OpenSSL::SSL::SSLError)
|
327
|
+
end
|
328
|
+
|
329
|
+
it "catches Timeout::Error and raise the more informative RequestTimeout" do
|
330
|
+
@http.stub(:request).and_raise(Timeout::Error)
|
331
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
332
|
+
lambda { @request.transmit(@uri, 'req', nil) }.should raise_error(RestClient::RequestTimeout)
|
333
|
+
end
|
334
|
+
|
335
|
+
it "catches Timeout::Error and raise the more informative RequestTimeout" do
|
336
|
+
@http.stub(:request).and_raise(Errno::ETIMEDOUT)
|
337
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
338
|
+
lambda { @request.transmit(@uri, 'req', nil) }.should raise_error(RestClient::RequestTimeout)
|
339
|
+
end
|
340
|
+
|
288
341
|
it "class method execute wraps constructor" do
|
289
342
|
req = double("rest request")
|
290
343
|
RestClient::Request.should_receive(:new).with(1 => 2).and_return(req)
|
@@ -387,6 +440,19 @@ describe RestClient::Request do
|
|
387
440
|
end
|
388
441
|
|
389
442
|
describe "timeout" do
|
443
|
+
it "does not set timeouts if not specified" do
|
444
|
+
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload')
|
445
|
+
@http.stub(:request)
|
446
|
+
@request.stub(:process_result)
|
447
|
+
@request.stub(:response_log)
|
448
|
+
|
449
|
+
@net.should_not_receive(:read_timeout=)
|
450
|
+
@net.should_not_receive(:open_timeout=)
|
451
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
452
|
+
|
453
|
+
@request.transmit(@uri, 'req', nil)
|
454
|
+
end
|
455
|
+
|
390
456
|
it "set read_timeout" do
|
391
457
|
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload', :timeout => 123, :ssl_version => 'SSLv3')
|
392
458
|
@http.stub(:request)
|
@@ -410,6 +476,35 @@ describe RestClient::Request do
|
|
410
476
|
|
411
477
|
@request.transmit(@uri, 'req', nil)
|
412
478
|
end
|
479
|
+
|
480
|
+
it "disable timeout by setting it to nil" do
|
481
|
+
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload', :timeout => nil, :open_timeout => nil)
|
482
|
+
@http.stub(:request)
|
483
|
+
@request.stub(:process_result)
|
484
|
+
@request.stub(:response_log)
|
485
|
+
|
486
|
+
@net.should_receive(:read_timeout=).with(nil)
|
487
|
+
@net.should_receive(:open_timeout=).with(nil)
|
488
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
489
|
+
|
490
|
+
@request.transmit(@uri, 'req', nil)
|
491
|
+
end
|
492
|
+
|
493
|
+
it "deprecated: disable timeout by setting it to -1" do
|
494
|
+
@request = RestClient::Request.new(:method => :put, :url => 'http://some/resource', :payload => 'payload', :timeout => -1, :open_timeout => -1)
|
495
|
+
@http.stub(:request)
|
496
|
+
@request.stub(:process_result)
|
497
|
+
@request.stub(:response_log)
|
498
|
+
|
499
|
+
@request.should_receive(:warn)
|
500
|
+
@net.should_receive(:read_timeout=).with(nil)
|
501
|
+
|
502
|
+
@request.should_receive(:warn)
|
503
|
+
@net.should_receive(:open_timeout=).with(nil)
|
504
|
+
@net.should_receive(:ssl_version=).with('SSLv3')
|
505
|
+
|
506
|
+
@request.transmit(@uri, 'req', nil)
|
507
|
+
end
|
413
508
|
end
|
414
509
|
|
415
510
|
describe "ssl" do
|
@@ -618,4 +713,20 @@ describe RestClient::Request do
|
|
618
713
|
response.should_not be_nil
|
619
714
|
response.code.should eq 204
|
620
715
|
end
|
716
|
+
|
717
|
+
describe "raw response" do
|
718
|
+
it "should read the response into a binary-mode tempfile" do
|
719
|
+
@request = RestClient::Request.new(:method => "get", :url => "example.com", :raw_response => true)
|
720
|
+
|
721
|
+
tempfile = double("tempfile")
|
722
|
+
tempfile.should_receive(:binmode)
|
723
|
+
tempfile.stub(:open)
|
724
|
+
tempfile.stub(:close)
|
725
|
+
Tempfile.should_receive(:new).with("rest-client").and_return(tempfile)
|
726
|
+
|
727
|
+
net_http_res = Net::HTTPOK.new(nil, "200", "body")
|
728
|
+
net_http_res.stub(:read_body).and_return("body")
|
729
|
+
@request.fetch_body(net_http_res)
|
730
|
+
end
|
731
|
+
end
|
621
732
|
end
|
metadata
CHANGED
@@ -1,111 +1,123 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rest-client-maestro
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease: true
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 7
|
9
|
-
- 3
|
10
|
-
- maestro
|
11
|
-
version: 1.7.3.maestro
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.7.4.maestro
|
12
5
|
platform: ruby
|
13
|
-
authors:
|
6
|
+
authors:
|
14
7
|
- REST Client Team
|
15
8
|
autorequire:
|
16
9
|
bindir: bin
|
17
10
|
cert_chain: []
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
dependencies:
|
22
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
23
14
|
name: mime-types
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 47
|
31
|
-
segments:
|
32
|
-
- 1
|
33
|
-
- 16
|
34
|
-
version: "1.16"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
35
20
|
type: :runtime
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: webmock
|
39
21
|
prerelease: false
|
40
|
-
|
41
|
-
|
42
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: webmock
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
43
31
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
segments:
|
47
|
-
- 1
|
48
|
-
- 4
|
49
|
-
version: "1.4"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.4'
|
50
34
|
type: :development
|
51
|
-
|
52
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.4'
|
41
|
+
- !ruby/object:Gem::Dependency
|
53
42
|
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.4'
|
48
|
+
type: :development
|
54
49
|
prerelease: false
|
55
|
-
|
56
|
-
|
57
|
-
requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
58
52
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
65
62
|
type: :development
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: netrc
|
69
63
|
prerelease: false
|
70
|
-
|
71
|
-
|
72
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry-doc
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ! '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: netrc
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
73
87
|
- - ~>
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
hash: 13
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
- 7
|
79
|
-
- 7
|
88
|
+
- !ruby/object:Gem::Version
|
80
89
|
version: 0.7.7
|
81
90
|
type: :runtime
|
82
|
-
version_requirements: *id004
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rdoc
|
85
91
|
prerelease: false
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.7.7
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rdoc
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
96
103
|
version: 2.4.2
|
97
104
|
type: :runtime
|
98
|
-
|
99
|
-
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.4.2
|
111
|
+
description: ! 'A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework
|
112
|
+
style of specifying actions: get, put, post, delete.'
|
100
113
|
email: rest.client@librelist.com
|
101
|
-
executables:
|
114
|
+
executables:
|
102
115
|
- restclient
|
103
116
|
extensions: []
|
104
|
-
|
105
|
-
extra_rdoc_files:
|
117
|
+
extra_rdoc_files:
|
106
118
|
- README.rdoc
|
107
119
|
- history.md
|
108
|
-
files:
|
120
|
+
files:
|
109
121
|
- .gitignore
|
110
122
|
- .rspec
|
111
123
|
- .ruby-version
|
@@ -127,16 +139,17 @@ files:
|
|
127
139
|
- lib/restclient/request.rb
|
128
140
|
- lib/restclient/resource.rb
|
129
141
|
- lib/restclient/response.rb
|
142
|
+
- lib/restclient/version.rb
|
130
143
|
- rest-client-maestro.gemspec
|
131
|
-
- spec/integration/
|
132
|
-
- spec/integration/
|
133
|
-
- spec/integration/
|
134
|
-
- spec/integration/
|
144
|
+
- spec/integration/capath_digicert/244b5494.0
|
145
|
+
- spec/integration/capath_digicert/81b9768f.0
|
146
|
+
- spec/integration/capath_digicert/README
|
147
|
+
- spec/integration/capath_digicert/digicert.crt
|
135
148
|
- spec/integration/capath_verisign/415660c1.0
|
136
149
|
- spec/integration/capath_verisign/7651b327.0
|
137
150
|
- spec/integration/capath_verisign/README
|
138
151
|
- spec/integration/capath_verisign/verisign.crt
|
139
|
-
- spec/integration/certs/
|
152
|
+
- spec/integration/certs/digicert.crt
|
140
153
|
- spec/integration/certs/verisign.crt
|
141
154
|
- spec/integration/integration_spec.rb
|
142
155
|
- spec/integration/request_spec.rb
|
@@ -151,52 +164,41 @@ files:
|
|
151
164
|
- spec/unit/resource_spec.rb
|
152
165
|
- spec/unit/response_spec.rb
|
153
166
|
- spec/unit/restclient_spec.rb
|
154
|
-
has_rdoc: true
|
155
167
|
homepage: http://github.com/maestrodev/rest-client
|
156
|
-
licenses:
|
168
|
+
licenses:
|
157
169
|
- MIT
|
170
|
+
metadata: {}
|
158
171
|
post_install_message:
|
159
172
|
rdoc_options: []
|
160
|
-
|
161
|
-
require_paths:
|
173
|
+
require_paths:
|
162
174
|
- lib
|
163
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
-
none: false
|
174
|
-
requirements:
|
175
|
-
- - ">"
|
176
|
-
- !ruby/object:Gem::Version
|
177
|
-
hash: 25
|
178
|
-
segments:
|
179
|
-
- 1
|
180
|
-
- 3
|
181
|
-
- 1
|
175
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - ! '>='
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: '0'
|
180
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
|
+
requirements:
|
182
|
+
- - ! '>'
|
183
|
+
- !ruby/object:Gem::Version
|
182
184
|
version: 1.3.1
|
183
185
|
requirements: []
|
184
|
-
|
185
186
|
rubyforge_project:
|
186
|
-
rubygems_version:
|
187
|
+
rubygems_version: 2.2.2
|
187
188
|
signing_key:
|
188
|
-
specification_version:
|
189
|
-
summary: Simple HTTP and REST client for Ruby, inspired by microframework syntax for
|
190
|
-
|
191
|
-
|
192
|
-
- spec/integration/
|
193
|
-
- spec/integration/
|
194
|
-
- spec/integration/
|
189
|
+
specification_version: 4
|
190
|
+
summary: Simple HTTP and REST client for Ruby, inspired by microframework syntax for
|
191
|
+
specifying actions.
|
192
|
+
test_files:
|
193
|
+
- spec/integration/capath_digicert/244b5494.0
|
194
|
+
- spec/integration/capath_digicert/81b9768f.0
|
195
|
+
- spec/integration/capath_digicert/README
|
196
|
+
- spec/integration/capath_digicert/digicert.crt
|
195
197
|
- spec/integration/capath_verisign/415660c1.0
|
196
198
|
- spec/integration/capath_verisign/7651b327.0
|
197
199
|
- spec/integration/capath_verisign/README
|
198
200
|
- spec/integration/capath_verisign/verisign.crt
|
199
|
-
- spec/integration/certs/
|
201
|
+
- spec/integration/certs/digicert.crt
|
200
202
|
- spec/integration/certs/verisign.crt
|
201
203
|
- spec/integration/integration_spec.rb
|
202
204
|
- spec/integration/request_spec.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
3
|
-
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
4
|
-
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
5
|
-
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
6
|
-
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
7
|
-
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
8
|
-
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
9
|
-
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
10
|
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
11
|
-
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
12
|
-
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
13
|
-
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
14
|
-
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
15
|
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
16
|
-
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
17
|
-
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
18
|
-
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
19
|
-
-----END CERTIFICATE-----
|
@@ -1,19 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
3
|
-
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
4
|
-
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
5
|
-
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
6
|
-
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
7
|
-
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
8
|
-
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
9
|
-
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
10
|
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
11
|
-
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
12
|
-
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
13
|
-
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
14
|
-
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
15
|
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
16
|
-
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
17
|
-
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
18
|
-
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
19
|
-
-----END CERTIFICATE-----
|
@@ -1,19 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
3
|
-
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
4
|
-
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
5
|
-
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
6
|
-
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
7
|
-
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
8
|
-
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
9
|
-
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
10
|
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
11
|
-
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
12
|
-
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
13
|
-
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
14
|
-
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
15
|
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
16
|
-
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
17
|
-
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
18
|
-
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
19
|
-
-----END CERTIFICATE-----
|
@@ -1,19 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
3
|
-
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
4
|
-
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
5
|
-
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
6
|
-
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
7
|
-
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
8
|
-
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
9
|
-
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
10
|
-
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
11
|
-
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
12
|
-
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
13
|
-
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
14
|
-
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
15
|
-
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
16
|
-
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
17
|
-
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
18
|
-
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
19
|
-
-----END CERTIFICATE-----
|