webmock 1.14.0 → 1.15.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.
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.15.0
4
+
5
+ * Excon >= 0.27.5 compatibility.
6
+
7
+ Thanks to [Brian D. Burns](https://github.com/burns)
8
+
3
9
  ## 1.14.0
4
10
 
5
11
  * Handling non UTF-8 characters in query params.
data/Gemfile CHANGED
@@ -8,8 +8,6 @@ end
8
8
 
9
9
  group :development do
10
10
  gem 'rake'
11
- gem 'guard-rspec'
12
- gem 'rb-fsevent'
13
11
  end
14
12
 
15
13
  group :test do
data/README.md CHANGED
@@ -136,7 +136,7 @@ end # ===> Success
136
136
  ### Matching request body against a hash. Body can be URL-Encoded, JSON or XML.
137
137
 
138
138
  ```ruby
139
- stub_http_request(:post, "www.example.com").
139
+ stub_request(:post, "www.example.com").
140
140
  with(:body => {:data => {:a => '1', :b => 'five'}})
141
141
 
142
142
  RestClient.post('www.example.com', "data[a]=1&data[b]=five",
@@ -152,7 +152,7 @@ RestClient.post('www.example.com', '<data a="1" b="five" />',
152
152
  ### Matching request body against partial hash.
153
153
 
154
154
  ```ruby
155
- stub_http_request(:post, "www.example.com").
155
+ stub_request(:post, "www.example.com").
156
156
  with(:body => hash_including({:data => {:a => '1', :b => 'five'}}))
157
157
 
158
158
  RestClient.post('www.example.com', "data[a]=1&data[b]=five&x=1",
@@ -176,7 +176,7 @@ end # ===> Success
176
176
  ### Matching multiple headers with the same name
177
177
 
178
178
  ```ruby
179
- stub_http_request(:get, 'www.example.com').with(:headers => {'Accept' => ['image/jpeg', 'image/png'] })
179
+ stub_request(:get, 'www.example.com').with(:headers => {'Accept' => ['image/jpeg', 'image/png'] })
180
180
 
181
181
  req = Net::HTTP::Get.new("/")
182
182
  req['Accept'] = ['image/png']
@@ -214,7 +214,7 @@ Net::HTTP.get('www.example.com', '/') # ===> Success
214
214
  ### Matching query params using hash
215
215
 
216
216
  ```ruby
217
- stub_http_request(:get, "www.example.com").with(:query => {"a" => ["b", "c"]})
217
+ stub_request(:get, "www.example.com").with(:query => {"a" => ["b", "c"]})
218
218
 
219
219
  RestClient.get("http://www.example.com/?a[]=b&a[]=c") # ===> Success
220
220
  ```
@@ -222,7 +222,7 @@ RestClient.get("http://www.example.com/?a[]=b&a[]=c") # ===> Success
222
222
  ### Matching partial query params using hash
223
223
 
224
224
  ```ruby
225
- stub_http_request(:get, "www.example.com").with(:query => hash_including({"a" => ["b", "c"]}))
225
+ stub_request(:get, "www.example.com").with(:query => hash_including({"a" => ["b", "c"]}))
226
226
 
227
227
  RestClient.get("http://www.example.com/?a[]=b&a[]=c&x=1") # ===> Success
228
228
  ```
@@ -860,6 +860,8 @@ People who submitted patches and new features or suggested improvements. Many th
860
860
  * Matthew Horan
861
861
  * Dmitry Gutov
862
862
  * Florian Dütsch
863
+ * Manuel Meurer
864
+ * Brian D. Burns
863
865
 
864
866
  For a full list of contributors you can visit the
865
867
  [contributors](https://github.com/bblimke/webmock/contributors) page.
@@ -5,7 +5,7 @@ rescue LoadError
5
5
  end
6
6
 
7
7
  if defined?(Excon)
8
- WebMock::VersionChecker.new('Excon', Excon::VERSION, '0.22.0').check_version!
8
+ WebMock::VersionChecker.new('Excon', Excon::VERSION, '0.27.5').check_version!
9
9
 
10
10
  module WebMock
11
11
  module HttpLibAdapters
@@ -54,7 +54,7 @@ if defined?(Excon)
54
54
  response
55
55
  elsif WebMock.net_connect_allowed?(mock_request.uri)
56
56
  conn = new_excon_connection(params)
57
- real_response = conn.request(scrub_params_from(params.merge(:mock => false)))
57
+ real_response = conn.request(request_params_from(params.merge(:mock => false)))
58
58
 
59
59
  ExconAdapter.perform_callbacks(mock_request, ExconAdapter.mock_response(real_response), :real_request => true)
60
60
 
@@ -68,15 +68,25 @@ if defined?(Excon)
68
68
  # Ensure the connection is constructed with the exact same args
69
69
  # that the orginal connection was constructed with.
70
70
  args = params.fetch(:__construction_args)
71
- ::Excon::Connection.new(scrub_params_from args.merge(:mock => false))
71
+ ::Excon::Connection.new(connection_params_from args.merge(:mock => false))
72
72
  end
73
73
 
74
- def self.scrub_params_from(hash)
74
+ def self.connection_params_from(hash)
75
75
  hash = hash.dup
76
76
  PARAMS_TO_DELETE.each { |key| hash.delete(key) }
77
77
  hash
78
78
  end
79
79
 
80
+ def self.request_params_from(hash)
81
+ hash = hash.dup
82
+ if Excon::VERSION >= '0.27.5'
83
+ request_keys = Excon::Utils.valid_request_keys(hash)
84
+ hash.reject! {|key,_| !request_keys.include?(key) }
85
+ end
86
+ PARAMS_TO_DELETE.each { |key| hash.delete(key) }
87
+ hash
88
+ end
89
+
80
90
  def self.to_query(hash)
81
91
  string = ""
82
92
  for key, values in hash
@@ -1,3 +1,3 @@
1
1
  module WebMock
2
- VERSION = '1.14.0' unless defined?(::WebMock::VERSION)
2
+ VERSION = '1.15.0' unless defined?(::WebMock::VERSION)
3
3
  end
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: 47
4
+ hash: 43
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 14
8
+ - 15
9
9
  - 0
10
- version: 1.14.0
10
+ version: 1.15.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bartosz Blimke
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-10-03 00:00:00 Z
18
+ date: 2013-10-15 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: addressable
@@ -208,7 +208,6 @@ files:
208
208
  - .travis.yml
209
209
  - CHANGELOG.md
210
210
  - Gemfile
211
- - Guardfile
212
211
  - LICENSE
213
212
  - README.md
214
213
  - Rakefile
data/Guardfile DELETED
@@ -1,24 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- # rubies = %w[
5
- # 1.8.6
6
- # 1.8.7
7
- # 1.9.2
8
- # ree
9
- # jruby
10
- # ].map { |ruby| "#{ruby}@webmock" }
11
-
12
- rspec_options = {
13
- # :rvm => rubies,
14
- :all_on_start => false,
15
- :notification => false,
16
- :cli => '--color',
17
- :version => 2
18
- }
19
-
20
- guard 'rspec', rspec_options do
21
- watch(%r{^spec/.+_spec\.rb})
22
- watch(%r{^lib/(.+)\.rb}) { |m| "spec/lib/#{m[1]}_spec.rb" }
23
- watch('spec/spec_helper.rb') { "spec" }
24
- end