webmock 1.16.1 → 1.17.0
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.
- data/CHANGELOG.md +18 -0
- data/README.md +4 -0
- data/lib/webmock.rb +1 -0
- data/lib/webmock/http_lib_adapters/http_gem_adapter.rb +170 -0
- data/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +7 -0
- data/lib/webmock/util/query_mapper.rb +2 -2
- data/lib/webmock/version.rb +1 -1
- data/spec/acceptance/excon/excon_spec_helper.rb +7 -2
- data/spec/acceptance/http_gem/http_gem_spec.rb +54 -0
- data/spec/acceptance/http_gem/http_gem_spec_helper.rb +52 -0
- data/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +33 -0
- data/spec/unit/util/query_mapper_spec.rb +30 -0
- data/webmock.gemspec +2 -1
- metadata +79 -46
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.17.0
|
4
|
+
|
5
|
+
* HTTP gem support!
|
6
|
+
|
7
|
+
Thanks to [Aleksey V. Zapparov](https://github.com/ixti)
|
8
|
+
|
9
|
+
* Limited Excon gem requirement to version < 0.30 until the compatibility with version > 0.30.0 is fixed.
|
10
|
+
|
11
|
+
Thanks to [Aleksey V. Zapparov](https://github.com/ixti)
|
12
|
+
|
13
|
+
* Fixed issue where empty query key caused a `TypeError`
|
14
|
+
|
15
|
+
Thanks to [Jon Rowe](https://github.com/JonRowe)
|
16
|
+
|
17
|
+
* Handling Typhoeus `on_headers` and `on_body` params.
|
18
|
+
|
19
|
+
Thanks to [Matt Burke](https://github.com/spraints)
|
20
|
+
|
3
21
|
## 1.16.1
|
4
22
|
|
5
23
|
* Fixed "NameError: uninitialized constant WebMock::Response::Pathname" issue.
|
data/README.md
CHANGED
@@ -25,6 +25,7 @@ Supported HTTP libraries
|
|
25
25
|
* Curb (currently only Curb::Easy)
|
26
26
|
* Typhoeus (currently only Typhoeus::Hydra)
|
27
27
|
* Excon
|
28
|
+
* HTTP Gem
|
28
29
|
|
29
30
|
Supported Ruby Interpreters
|
30
31
|
---------------------------
|
@@ -874,6 +875,9 @@ People who submitted patches and new features or suggested improvements. Many th
|
|
874
875
|
* Stefano Uliari
|
875
876
|
* Alex Stupakov
|
876
877
|
* Karen Wang
|
878
|
+
* Matt Burke
|
879
|
+
* Jon Rowe
|
880
|
+
* Aleksey V. Zapparov
|
877
881
|
|
878
882
|
For a full list of contributors you can visit the
|
879
883
|
[contributors](https://github.com/bblimke/webmock/contributors) page.
|
data/lib/webmock.rb
CHANGED
@@ -38,6 +38,7 @@ require 'webmock/api'
|
|
38
38
|
require 'webmock/http_lib_adapters/http_lib_adapter_registry'
|
39
39
|
require 'webmock/http_lib_adapters/http_lib_adapter'
|
40
40
|
require 'webmock/http_lib_adapters/net_http'
|
41
|
+
require 'webmock/http_lib_adapters/http_gem_adapter'
|
41
42
|
require 'webmock/http_lib_adapters/httpclient_adapter'
|
42
43
|
require 'webmock/http_lib_adapters/patron_adapter'
|
43
44
|
require 'webmock/http_lib_adapters/curb_adapter'
|
@@ -0,0 +1,170 @@
|
|
1
|
+
begin
|
2
|
+
require "http"
|
3
|
+
rescue LoadError
|
4
|
+
# HTTP gem not found
|
5
|
+
end
|
6
|
+
|
7
|
+
|
8
|
+
if defined?(HTTP::Client)
|
9
|
+
module WebMock
|
10
|
+
module HttpLibAdapters
|
11
|
+
class HttpGemAdapter < HttpLibAdapter
|
12
|
+
|
13
|
+
adapter_for :http_gem
|
14
|
+
|
15
|
+
|
16
|
+
def self.enable!
|
17
|
+
::HTTP.enable_webmock!
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def self.disable!
|
22
|
+
::HTTP.disable_webmock!
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
module HTTP
|
31
|
+
class Request
|
32
|
+
|
33
|
+
def webmock_signature
|
34
|
+
::WebMock::RequestSignature.new(method, uri.to_s, {
|
35
|
+
:headers => headers,
|
36
|
+
:body => body
|
37
|
+
})
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
class Response
|
44
|
+
|
45
|
+
def to_webmock
|
46
|
+
webmock_response = ::WebMock::Response.new
|
47
|
+
|
48
|
+
webmock_response.status = [status, reason]
|
49
|
+
webmock_response.body = body
|
50
|
+
webmock_response.headers = headers
|
51
|
+
|
52
|
+
webmock_response
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def self.from_webmock(webmock_response)
|
57
|
+
status = webmock_response.status.first
|
58
|
+
headers = webmock_response.headers || {}
|
59
|
+
body = webmock_response.body
|
60
|
+
|
61
|
+
new(status, "1.1", headers, body)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
class WebMockPerform
|
68
|
+
|
69
|
+
def initialize request, &perform
|
70
|
+
@request = request
|
71
|
+
@perform = perform
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
def exec
|
76
|
+
replay || perform || halt
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
def request_signature
|
81
|
+
unless @request_signature
|
82
|
+
@request_signature = @request.webmock_signature
|
83
|
+
register_request(@request_signature)
|
84
|
+
end
|
85
|
+
|
86
|
+
@request_signature
|
87
|
+
end
|
88
|
+
|
89
|
+
|
90
|
+
protected
|
91
|
+
|
92
|
+
|
93
|
+
def response_for_request(signature)
|
94
|
+
::WebMock::StubRegistry.instance.response_for_request(signature)
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
def register_request(signature)
|
99
|
+
::WebMock::RequestRegistry.instance.requested_signatures.put(signature)
|
100
|
+
end
|
101
|
+
|
102
|
+
|
103
|
+
def replay
|
104
|
+
webmock_response = response_for_request(request_signature)
|
105
|
+
|
106
|
+
return unless webmock_response
|
107
|
+
|
108
|
+
raise Errno::ETIMEDOUT if webmock_response.should_timeout
|
109
|
+
webmock_response.raise_error_if_any
|
110
|
+
|
111
|
+
invoke_callbacks(webmock_response, :real_request => false)
|
112
|
+
::HTTP::Response.from_webmock webmock_response
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
def perform
|
117
|
+
return unless ::WebMock.net_connect_allowed?(request_signature.uri)
|
118
|
+
response = @perform.call
|
119
|
+
invoke_callbacks(response.to_webmock, :real_request => true)
|
120
|
+
response
|
121
|
+
end
|
122
|
+
|
123
|
+
|
124
|
+
def halt
|
125
|
+
raise ::WebMock::NetConnectNotAllowedError.new request_signature
|
126
|
+
end
|
127
|
+
|
128
|
+
|
129
|
+
def invoke_callbacks webmock_response, options = {}
|
130
|
+
::WebMock::CallbackRegistry.invoke_callbacks(
|
131
|
+
options.merge({ :lib => :http_gem }),
|
132
|
+
request_signature,
|
133
|
+
webmock_response
|
134
|
+
)
|
135
|
+
end
|
136
|
+
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
class Client
|
141
|
+
|
142
|
+
alias :__perform__ :perform
|
143
|
+
|
144
|
+
def perform request, options
|
145
|
+
return __perform__(request, options) unless ::HTTP.webmock_enabled?
|
146
|
+
WebMockPerform.new(request) { __perform__(request, options) }.exec
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
|
151
|
+
|
152
|
+
class << self
|
153
|
+
|
154
|
+
def enable_webmock!
|
155
|
+
@webmock_enabled = true
|
156
|
+
end
|
157
|
+
|
158
|
+
|
159
|
+
def disable_webmock!
|
160
|
+
@webmock_enabled = false
|
161
|
+
end
|
162
|
+
|
163
|
+
|
164
|
+
def webmock_enabled?
|
165
|
+
@webmock_enabled
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
@@ -143,6 +143,13 @@ if defined?(Typhoeus)
|
|
143
143
|
if webmock_response = ::WebMock::StubRegistry.instance.response_for_request(request_signature)
|
144
144
|
# ::WebMock::HttpLibAdapters::TyphoeusAdapter.stub_typhoeus(request_signature, webmock_response, self)
|
145
145
|
response = ::WebMock::HttpLibAdapters::TyphoeusAdapter.generate_typhoeus_response(request_signature, webmock_response)
|
146
|
+
if request.respond_to?(:on_headers)
|
147
|
+
request.execute_headers_callbacks(response)
|
148
|
+
end
|
149
|
+
if request.respond_to?(:streaming?) && request.streaming?
|
150
|
+
response.options[:response_body] = ""
|
151
|
+
request.on_body.each { |callback| callback.call(webmock_response.body, response) }
|
152
|
+
end
|
146
153
|
request.finish(response)
|
147
154
|
webmock_response.raise_error_if_any
|
148
155
|
res = false
|
@@ -131,8 +131,8 @@ module WebMock::Util
|
|
131
131
|
end
|
132
132
|
new_query_values = new_query_values.to_hash
|
133
133
|
new_query_values = new_query_values.map do |key, value|
|
134
|
-
key = key.to_s if key.kind_of?(Symbol)
|
135
|
-
[key, value]
|
134
|
+
key = key.to_s if key.kind_of?(Symbol) || key.nil?
|
135
|
+
[key.to_s, value]
|
136
136
|
end
|
137
137
|
# Useful default for OAuth and caching.
|
138
138
|
# Only to be used for non-Array inputs. Arrays should preserve order.
|
data/lib/webmock/version.rb
CHANGED
@@ -7,8 +7,13 @@ module ExconSpecHelper
|
|
7
7
|
uri = Addressable::URI.heuristic_parse(uri)
|
8
8
|
uri = uri.omit(:userinfo).to_s.gsub(' ', '%20')
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
if Gem::Version.new(Excon::VERSION) < Gem::Version.new("0.29.0")
|
11
|
+
options = options.merge(:method => method, :nonblock => false) # Dup and merge
|
12
|
+
response = Excon.new(uri).request(options, &block)
|
13
|
+
else
|
14
|
+
options = options.merge(:method => method) # Dup and merge
|
15
|
+
response = Excon.new(uri, :nonblock => false).request(options, &block)
|
16
|
+
end
|
12
17
|
|
13
18
|
headers = WebMock::Util::Headers.normalize_headers(response.headers)
|
14
19
|
headers = headers.inject({}) do |res, (name, value)|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
require "acceptance/webmock_shared"
|
5
|
+
require "acceptance/http_gem/http_gem_spec_helper"
|
6
|
+
|
7
|
+
describe "HTTP Gem" do
|
8
|
+
|
9
|
+
include HttpGemSpecHelper
|
10
|
+
|
11
|
+
|
12
|
+
include_examples "with WebMock", :no_status_message
|
13
|
+
|
14
|
+
|
15
|
+
context "when not following redirects" do
|
16
|
+
|
17
|
+
let(:response) { http_request(:get, "http://example.com") }
|
18
|
+
let(:headers) { response.headers }
|
19
|
+
|
20
|
+
it "stops on first request" do
|
21
|
+
stub_simple_request("example.com", 302, "Location" => "www.example.com")
|
22
|
+
stub_simple_request("www.example.com")
|
23
|
+
|
24
|
+
expect(headers).to include "Host" => "example.com"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
context "when following redirects" do
|
31
|
+
|
32
|
+
let(:response) { http_request(:get, "http://example.com", :follow => true) }
|
33
|
+
let(:headers) { response.headers }
|
34
|
+
|
35
|
+
|
36
|
+
it "returns response of destination" do
|
37
|
+
stub_simple_request("example.com", 302, "Location" => "www.example.com")
|
38
|
+
stub_simple_request("www.example.com")
|
39
|
+
|
40
|
+
expect(headers).to include "Host" => "www.example.com"
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
it "works with more than one redirect" do
|
45
|
+
stub_simple_request("example.com", 302, "Location" => "www.example.com")
|
46
|
+
stub_simple_request("www.example.com", 302, "Location" => "blog.example.com")
|
47
|
+
stub_simple_request("blog.example.com")
|
48
|
+
|
49
|
+
expect(headers).to include "Host" => "blog.example.com"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "ostruct"
|
2
|
+
|
3
|
+
|
4
|
+
module HttpGemSpecHelper
|
5
|
+
|
6
|
+
def http_request(method, uri, options = {}, &block)
|
7
|
+
response = HTTP.request(method, normalize_uri(uri), options).response
|
8
|
+
|
9
|
+
OpenStruct.new({
|
10
|
+
:body => response.body,
|
11
|
+
:headers => normalize_headers(response.headers),
|
12
|
+
:status => response.status.to_s,
|
13
|
+
:message => response.reason
|
14
|
+
})
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def normalize_uri(uri)
|
19
|
+
Addressable::URI.heuristic_parse(uri).normalize.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def normalize_headers headers
|
24
|
+
WebMock::Util::Headers.normalize_headers(Hash[headers.map { |k, v|
|
25
|
+
[k, v.is_a?(Array) ? v.join(", ") : v]
|
26
|
+
}])
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
def stub_simple_request host, status = 200, headers = {}
|
31
|
+
stub_request(:any, host).to_return({
|
32
|
+
:status => status,
|
33
|
+
:headers => headers.merge({ "Host" => host })
|
34
|
+
})
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def client_timeout_exception_class
|
39
|
+
Errno::ETIMEDOUT
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def connection_refused_exception_class
|
44
|
+
Errno::ECONNREFUSED
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
def http_library
|
49
|
+
:http_gem
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -78,6 +78,39 @@ unless RUBY_PLATFORM =~ /java/
|
|
78
78
|
hydra.run
|
79
79
|
test.should == response_code
|
80
80
|
end
|
81
|
+
|
82
|
+
it "should call on_body with 2xx response" do
|
83
|
+
body = "on_body fired"
|
84
|
+
stub_request(:any, "example.com").to_return(:body => body)
|
85
|
+
|
86
|
+
test_body = nil
|
87
|
+
test_complete = nil
|
88
|
+
pending("This test requires a newer version of Typhoeus") unless @request.respond_to?(:on_body)
|
89
|
+
@request.on_body do |body, response|
|
90
|
+
test_body = body
|
91
|
+
end
|
92
|
+
@request.on_complete do |response|
|
93
|
+
test_complete = response.body
|
94
|
+
end
|
95
|
+
hydra.queue @request
|
96
|
+
hydra.run
|
97
|
+
test_body.should == body
|
98
|
+
test_complete.should == ""
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should call on_headers with 2xx response" do
|
102
|
+
body = "on_headers fired"
|
103
|
+
stub_request(:any, "example.com").to_return(:body => body, :headers => {'X-Test' => '1'})
|
104
|
+
|
105
|
+
test_headers = nil
|
106
|
+
pending("This test requires a newer version of Typhoeus") unless @request.respond_to?(:on_headers)
|
107
|
+
@request.on_headers do |response|
|
108
|
+
test_headers = response.headers
|
109
|
+
end
|
110
|
+
hydra.queue @request
|
111
|
+
hydra.run
|
112
|
+
test_headers.should include('X-Test' => '1')
|
113
|
+
end
|
81
114
|
end
|
82
115
|
end
|
83
116
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe WebMock::Util::QueryMapper do
|
4
|
+
let(:query_mapper) { described_class }
|
5
|
+
|
6
|
+
it "converts query to values" do
|
7
|
+
query = "key=value&other_key=other_value"
|
8
|
+
values = { 'key' => 'value', 'other_key' => 'other_value' }
|
9
|
+
expect(query_mapper.query_to_values query).to eq values
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'converts values to a query string' do
|
13
|
+
query = "key=value&other_key=other_value"
|
14
|
+
values = [['key','value'],['other_key','other_value']]
|
15
|
+
expect(query_mapper.values_to_query values).to eq query
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'converts values with missing keys to a query string' do
|
19
|
+
query = "=value"
|
20
|
+
values = { '' => 'value' }
|
21
|
+
expect(query_mapper.values_to_query values).to eq query
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'converts values with nil keys to a query string' do
|
25
|
+
query = "=value"
|
26
|
+
values = { nil => 'value' }
|
27
|
+
expect(query_mapper.values_to_query values).to eq query
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/webmock.gemspec
CHANGED
@@ -19,13 +19,14 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency 'crack', '>=0.3.2'
|
20
20
|
|
21
21
|
s.add_development_dependency 'rspec', '~> 2.10'
|
22
|
+
s.add_development_dependency 'http', '>= 0.5.0'
|
22
23
|
s.add_development_dependency 'httpclient', '>= 2.2.4'
|
23
24
|
s.add_development_dependency 'patron', '>= 0.4.18' unless RUBY_PLATFORM =~ /java/
|
24
25
|
s.add_development_dependency 'em-http-request', '>= 1.0.2'
|
25
26
|
s.add_development_dependency 'em-synchrony', '>= 1.0.0' if RUBY_VERSION >= "1.9"
|
26
27
|
s.add_development_dependency 'curb', '>= 0.8.0' unless RUBY_PLATFORM =~ /java/
|
27
28
|
s.add_development_dependency 'typhoeus', '>= 0.5.0' unless RUBY_PLATFORM =~ /java/
|
28
|
-
s.add_development_dependency 'excon', '>= 0.
|
29
|
+
s.add_development_dependency 'excon', '>= 0.27.5', '< 0.30.0'
|
29
30
|
s.add_development_dependency 'minitest', '~> 5.0.0'
|
30
31
|
s.add_development_dependency 'rdoc', ((RUBY_VERSION == '1.8.6') ? '<= 3.5.0' : '>3.5.0')
|
31
32
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 83
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 17
|
9
|
+
- 0
|
10
|
+
version: 1.17.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bartosz Blimke
|
@@ -15,10 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2014-01-16 00:00:00 +01:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
+
type: :runtime
|
22
23
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
24
|
none: false
|
24
25
|
requirements:
|
@@ -30,11 +31,11 @@ dependencies:
|
|
30
31
|
- 2
|
31
32
|
- 7
|
32
33
|
version: 2.2.7
|
33
|
-
type: :runtime
|
34
34
|
prerelease: false
|
35
35
|
requirement: *id001
|
36
|
+
name: addressable
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
+
type: :runtime
|
38
39
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
41
|
requirements:
|
@@ -46,11 +47,11 @@ dependencies:
|
|
46
47
|
- 3
|
47
48
|
- 2
|
48
49
|
version: 0.3.2
|
49
|
-
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
requirement: *id002
|
52
|
+
name: crack
|
52
53
|
- !ruby/object:Gem::Dependency
|
53
|
-
|
54
|
+
type: :development
|
54
55
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
56
|
none: false
|
56
57
|
requirements:
|
@@ -61,12 +62,28 @@ dependencies:
|
|
61
62
|
- 2
|
62
63
|
- 10
|
63
64
|
version: "2.10"
|
64
|
-
type: :development
|
65
65
|
prerelease: false
|
66
66
|
requirement: *id003
|
67
|
+
name: rspec
|
67
68
|
- !ruby/object:Gem::Dependency
|
68
|
-
|
69
|
+
type: :development
|
69
70
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 11
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
- 5
|
79
|
+
- 0
|
80
|
+
version: 0.5.0
|
81
|
+
prerelease: false
|
82
|
+
requirement: *id004
|
83
|
+
name: http
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
type: :development
|
86
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
70
87
|
none: false
|
71
88
|
requirements:
|
72
89
|
- - ">="
|
@@ -77,12 +94,12 @@ dependencies:
|
|
77
94
|
- 2
|
78
95
|
- 4
|
79
96
|
version: 2.2.4
|
80
|
-
type: :development
|
81
97
|
prerelease: false
|
82
|
-
requirement: *
|
98
|
+
requirement: *id005
|
99
|
+
name: httpclient
|
83
100
|
- !ruby/object:Gem::Dependency
|
84
|
-
|
85
|
-
version_requirements: &
|
101
|
+
type: :development
|
102
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
86
103
|
none: false
|
87
104
|
requirements:
|
88
105
|
- - ">="
|
@@ -93,12 +110,12 @@ dependencies:
|
|
93
110
|
- 4
|
94
111
|
- 18
|
95
112
|
version: 0.4.18
|
96
|
-
type: :development
|
97
113
|
prerelease: false
|
98
|
-
requirement: *
|
114
|
+
requirement: *id006
|
115
|
+
name: patron
|
99
116
|
- !ruby/object:Gem::Dependency
|
100
|
-
|
101
|
-
version_requirements: &
|
117
|
+
type: :development
|
118
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
102
119
|
none: false
|
103
120
|
requirements:
|
104
121
|
- - ">="
|
@@ -109,12 +126,12 @@ dependencies:
|
|
109
126
|
- 0
|
110
127
|
- 2
|
111
128
|
version: 1.0.2
|
112
|
-
type: :development
|
113
129
|
prerelease: false
|
114
|
-
requirement: *
|
130
|
+
requirement: *id007
|
131
|
+
name: em-http-request
|
115
132
|
- !ruby/object:Gem::Dependency
|
116
|
-
|
117
|
-
version_requirements: &
|
133
|
+
type: :development
|
134
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
118
135
|
none: false
|
119
136
|
requirements:
|
120
137
|
- - ">="
|
@@ -125,12 +142,12 @@ dependencies:
|
|
125
142
|
- 8
|
126
143
|
- 0
|
127
144
|
version: 0.8.0
|
128
|
-
type: :development
|
129
145
|
prerelease: false
|
130
|
-
requirement: *
|
146
|
+
requirement: *id008
|
147
|
+
name: curb
|
131
148
|
- !ruby/object:Gem::Dependency
|
132
|
-
|
133
|
-
version_requirements: &
|
149
|
+
type: :development
|
150
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
134
151
|
none: false
|
135
152
|
requirements:
|
136
153
|
- - ">="
|
@@ -141,28 +158,36 @@ dependencies:
|
|
141
158
|
- 5
|
142
159
|
- 0
|
143
160
|
version: 0.5.0
|
144
|
-
type: :development
|
145
161
|
prerelease: false
|
146
|
-
requirement: *
|
162
|
+
requirement: *id009
|
163
|
+
name: typhoeus
|
147
164
|
- !ruby/object:Gem::Dependency
|
148
|
-
|
149
|
-
version_requirements: &
|
165
|
+
type: :development
|
166
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
150
167
|
none: false
|
151
168
|
requirements:
|
152
169
|
- - ">="
|
153
170
|
- !ruby/object:Gem::Version
|
154
|
-
hash:
|
171
|
+
hash: 121
|
172
|
+
segments:
|
173
|
+
- 0
|
174
|
+
- 27
|
175
|
+
- 5
|
176
|
+
version: 0.27.5
|
177
|
+
- - <
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 103
|
155
180
|
segments:
|
156
181
|
- 0
|
157
|
-
-
|
182
|
+
- 30
|
158
183
|
- 0
|
159
|
-
version: 0.
|
160
|
-
type: :development
|
184
|
+
version: 0.30.0
|
161
185
|
prerelease: false
|
162
|
-
requirement: *
|
186
|
+
requirement: *id010
|
187
|
+
name: excon
|
163
188
|
- !ruby/object:Gem::Dependency
|
164
|
-
|
165
|
-
version_requirements: &
|
189
|
+
type: :development
|
190
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
166
191
|
none: false
|
167
192
|
requirements:
|
168
193
|
- - ~>
|
@@ -173,12 +198,12 @@ dependencies:
|
|
173
198
|
- 0
|
174
199
|
- 0
|
175
200
|
version: 5.0.0
|
176
|
-
type: :development
|
177
201
|
prerelease: false
|
178
|
-
requirement: *
|
202
|
+
requirement: *id011
|
203
|
+
name: minitest
|
179
204
|
- !ruby/object:Gem::Dependency
|
180
|
-
|
181
|
-
version_requirements: &
|
205
|
+
type: :development
|
206
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
182
207
|
none: false
|
183
208
|
requirements:
|
184
209
|
- - ">"
|
@@ -189,9 +214,9 @@ dependencies:
|
|
189
214
|
- 5
|
190
215
|
- 0
|
191
216
|
version: 3.5.0
|
192
|
-
type: :development
|
193
217
|
prerelease: false
|
194
|
-
requirement: *
|
218
|
+
requirement: *id012
|
219
|
+
name: rdoc
|
195
220
|
description: WebMock allows stubbing HTTP requests and setting expectations on HTTP requests.
|
196
221
|
email:
|
197
222
|
- bartosz.blimke@gmail.com
|
@@ -224,6 +249,7 @@ files:
|
|
224
249
|
- lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb
|
225
250
|
- lib/webmock/http_lib_adapters/em_http_request_adapter.rb
|
226
251
|
- lib/webmock/http_lib_adapters/excon_adapter.rb
|
252
|
+
- lib/webmock/http_lib_adapters/http_gem_adapter.rb
|
227
253
|
- lib/webmock/http_lib_adapters/http_lib_adapter.rb
|
228
254
|
- lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb
|
229
255
|
- lib/webmock/http_lib_adapters/httpclient_adapter.rb
|
@@ -266,6 +292,8 @@ files:
|
|
266
292
|
- spec/acceptance/em_http_request/em_http_request_spec_helper.rb
|
267
293
|
- spec/acceptance/excon/excon_spec.rb
|
268
294
|
- spec/acceptance/excon/excon_spec_helper.rb
|
295
|
+
- spec/acceptance/http_gem/http_gem_spec.rb
|
296
|
+
- spec/acceptance/http_gem/http_gem_spec_helper.rb
|
269
297
|
- spec/acceptance/httpclient/httpclient_spec.rb
|
270
298
|
- spec/acceptance/httpclient/httpclient_spec_helper.rb
|
271
299
|
- spec/acceptance/net_http/net_http_shared.rb
|
@@ -309,6 +337,7 @@ files:
|
|
309
337
|
- spec/unit/util/hash_keys_stringifier_spec.rb
|
310
338
|
- spec/unit/util/headers_spec.rb
|
311
339
|
- spec/unit/util/json_spec.rb
|
340
|
+
- spec/unit/util/query_mapper_spec.rb
|
312
341
|
- spec/unit/util/uri_spec.rb
|
313
342
|
- spec/unit/util/version_checker_spec.rb
|
314
343
|
- spec/unit/webmock_spec.rb
|
@@ -317,6 +346,7 @@ files:
|
|
317
346
|
- test/test_helper.rb
|
318
347
|
- test/test_webmock.rb
|
319
348
|
- webmock.gemspec
|
349
|
+
has_rdoc: true
|
320
350
|
homepage: http://github.com/bblimke/webmock
|
321
351
|
licenses:
|
322
352
|
- MIT
|
@@ -346,7 +376,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
346
376
|
requirements: []
|
347
377
|
|
348
378
|
rubyforge_project: webmock
|
349
|
-
rubygems_version: 1.
|
379
|
+
rubygems_version: 1.6.2
|
350
380
|
signing_key:
|
351
381
|
specification_version: 3
|
352
382
|
summary: Library for stubbing HTTP requests in Ruby.
|
@@ -357,6 +387,8 @@ test_files:
|
|
357
387
|
- spec/acceptance/em_http_request/em_http_request_spec_helper.rb
|
358
388
|
- spec/acceptance/excon/excon_spec.rb
|
359
389
|
- spec/acceptance/excon/excon_spec_helper.rb
|
390
|
+
- spec/acceptance/http_gem/http_gem_spec.rb
|
391
|
+
- spec/acceptance/http_gem/http_gem_spec_helper.rb
|
360
392
|
- spec/acceptance/httpclient/httpclient_spec.rb
|
361
393
|
- spec/acceptance/httpclient/httpclient_spec_helper.rb
|
362
394
|
- spec/acceptance/net_http/net_http_shared.rb
|
@@ -400,6 +432,7 @@ test_files:
|
|
400
432
|
- spec/unit/util/hash_keys_stringifier_spec.rb
|
401
433
|
- spec/unit/util/headers_spec.rb
|
402
434
|
- spec/unit/util/json_spec.rb
|
435
|
+
- spec/unit/util/query_mapper_spec.rb
|
403
436
|
- spec/unit/util/uri_spec.rb
|
404
437
|
- spec/unit/util/version_checker_spec.rb
|
405
438
|
- spec/unit/webmock_spec.rb
|